gpt4 book ai didi

angularjs - angular-pickadate 时区 - selectedDate 是其他时区的模态日期前一天

转载 作者:行者123 更新时间:2023-12-04 01:58:39 27 4
gpt4 key购买 nike

angular-pickadate 适用于我的本地时间。要查看全局时报,我已将时区更改为“美国/丹佛”。现在选择的日期是在今天日期的前一天(通过模态日期),因此它将“pickadate-active”类应用于昨天。
我尝试使用本地时区和 UTC 时区传递模态日期。我不知道为什么 dateHelper.parseDate 再次调用之前通过的剥离 Timezone 值,现在我的理解是 $locale 正在转换剥离日期,假设它是 UTC 日期到本地日期。因此,作为 GMT-06:00,所选日期是前一个日期。

HTML DIV - <div pickadate ng-model="vm.date" ng-model-options="{ debounce: 0 }" header="true" select="true" date-highlight-list="vm.dateList" ></div>
Controller - vm.date = moment().tz(timeZoneName).format();
有人可以建议一种使用 angular-pickadate 处理不同时区的方法吗?谢谢 !
GIT 指令 URL - https://github.com/restorando/angular-pickadate

最佳答案

parseDate 函数根据 GMT 时区给出日期对象,所以日期变少了一天。所以我删除了这个条件,它直接返回 GMT 日期以传递带有时区的日期字符串。

if (angular.isDate(dateString) || angular.isDate(new Date(dateString))) {
new Date(dateString); }

现在转到下一个 if 块以使用正则表达式格式化日期并在那里添加此条件以处理日期字符串和日期对象 -
if(typeof dateString == 'object') {
dateString = (dateString['_d'])? dateString['_d']: dateString['_i']; // being private (_d, _i) should be avoided but only way in mine case
if(typeof dateString == 'object') // returns Object by dateString['_d'] else string
dateString = dateString.getDate() +'-'+ dateString.getMonth() +'-' +dateString.getFullYear();
}

dateParts = dateString.split(separator); // separator was "-" every time so making dateString with "-" in case it was object

关于angularjs - angular-pickadate 时区 - selectedDate 是其他时区的模态日期前一天,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44517774/

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