我正在使用moment.js
在我的应用中管理我的日期。但由于某些原因,日历并不总是显示预期的结果,有时候我期待today
值,我终于得到tomorrow
一个(其他值似乎正确)。< / p>
作为我的函数中的入口值,我有一个时间戳,在里面运行,moment.now()来获取当天,最后使用日历函数来比较current day
和我的timestamp
。
这是API问题吗?或者也许新的一天在12小时后计算?
// timeStamp = 1506982867000
$scope.testDate = function(timeStamp)
{
// Getting my timeStamp into a moment
var day = moment(timeStamp);
// Getting the current day
var now = moment();
// moment.Calendar() function
return day.calendar(now, {
sameDay: '[Today]',
nextDay: '[Tomorrow]',
nextWeek: 'dddd',
lastDay: 'dddd',
lastWeek: 'dddd',
sameElse: 'L'
});
};
好吧,当我试图在这个网站上查看我的约会对象时:https://www.epochconverter.com/如果是格林威治标准时间,我会得到正确的约会,而错误的约会(我在我的应用程序中找到的那个),这是格林威治标准时间2。
如何在我的日历中修改此GMT值?
答案 0 :(得分:0)
我通过使用moment()。utcOffset()方法解决了这个问题。感谢Fran的帮助!
$scope.testDate = function(timeStamp)
{
// utcOffset(a) parameter a is for GMT+a
var day = moment(timeStamp).utcOffset(0);
var now = moment().utcOffset(0);
// moment.Calendar() function
return day.calendar(now, {
sameDay: '[Today]',
nextDay: '[Tomorrow]',
nextWeek: 'dddd',
lastDay: 'dddd',
lastWeek: 'dddd',
sameElse: 'L'
});
};
答案 1 :(得分:0)
如果您希望您的值代表UTC,那么只需将您的值初始化为UTC:
var day = moment.utc(timeStamp);
var now = moment.utc();
另请参阅:https://maggiepint.com/2016/05/14/moment-js-shows-the-wrong-date/