gpt4 book ai didi

javascript - Angular-Ui Bootstrap Popup DatePicker 的 ngModelOptions 的时区属性

转载 作者:行者123 更新时间:2023-12-05 00:32:42 28 4
gpt4 key购买 nike

我们在我们的应用程序中使用 Angular-Ui Bootstrap Popup DatePicker 并且一直运行到 issues such as this前一天被选择为用户实际选择的日期。

我们将选择器的日期设置为来自服务器 (json) 的 UTC。虽然,Javascript Date 对象是本地的,因此不匹配。

作为一种解决方案(显然),他们添加了一个 ngModelOptions ,我看到它的用法如下:

var date = new Date()
$scope.timezone = ((date.getTimezoneOffset() / 60) * -100)

带标记
<input type="date" 
ng-model="dateModel"
ng-model-options="{timezone: timezone}" />

但是该选择器的文档并没有真正解释它如何使用/使用该时区属性。我能找到的最接近解释的是 ngModelOptions 本身的文档,它说:

You can specify the timezone that date/time input directives expect by providing its name in the timezone property.



我希望有人可以简要解释该选择器如何使用 ngModelOptions 指令的 timezone 属性,以及我应该将其设置为 utc 还是将浏览器偏移量设置为 utc。

谢谢

最佳答案

对于那些仍在使用 Angular-UI Bootstrap 并寻找答案的人:
您可以使用 ng-model 选项,例如 ng-model-options="{timezone: 'UTC'}" .这将转换日期对象,使该时区的时间为 00:00。
如果没有此设置,dateModel 值将是浏览器本地时间的午夜。我的浏览器是 BST (UTC+1),所以默认日期是:Sat May 07 2022 00:00:00 GMT+0100 (British Summer Time) , 如果然后使用调用 dateModel.toISOString()这将转换为“2022-05-06T23:00:00.000Z”。
要获取表示 UTC 午夜的日期对象,请设置选项,如下所示:

<input type="date" 
ng-model="dateModel"
ng-model-options="{timezone: 'UTC'}" />
现在,当我选择一个日期并在浏览器中查看它时,它显示为 Sat May 07 2022 01:00:00 GMT+0100 (British Summer Time) ,所以调用 dateModel.toISOString()'2022-05-07T00:00:00.000Z' (这是我发送到我的服务器的内容)。

关于javascript - Angular-Ui Bootstrap Popup DatePicker 的 ngModelOptions 的时区属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41763722/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com