Javascript momentjs和转换到unix给出了错误的日期
我在让momentjs以正确的方式将日期转换为unix时遇到了一些问题:Javascript momentjs和转换到unix给出了错误的日期,javascript,date,datetime,momentjs,Javascript,Date,Datetime,Momentjs,我在让momentjs以正确的方式将日期转换为unix时遇到了一些问题: var start = new Date(2013,11,2); console.log('Start date: '+start); console.log('Unix date: '+moment(start).unix()); console.log('Unix date 2: '+moment(start).add('hours', 1).unix()); Start date: Mon Dec 02 2013
var start = new Date(2013,11,2);
console.log('Start date: '+start);
console.log('Unix date: '+moment(start).unix());
console.log('Unix date 2: '+moment(start).add('hours', 1).unix());
Start date: Mon Dec 02 2013 00:00:00 GMT+0100 (CET)
Unix date: 1385938800
Unix date 2: 1385942400
看
但在中输入转换后的unix日期将返回Sun,2013年12月1日23:00:00 GMT,而添加1小时将返回正确的unix日期。我猜这是因为开始日期是在CET(我的地区时区)中创建的。因此,我想我需要将开始日期传递为UTC,但我必须保留日期值(即,它仍然应该是“Mon Dec 02 2013 00:00:00”)。但我不知道怎么做
我试过了
moment(start).utc().unix(),
但这似乎没有什么区别,因为它仍然返回Unix日期:1385938800
如何使其返回正确的unix日期?时间戳没有时区。它们都是相对于UTC的 如果将秒转换为UTC,则2013年12月1日23:00:00 GMT等于2013年12月2日周一00:00:00 GMT+0100。解决方案包括时刻时区,并为所有时刻对象选择默认时区
moment.tz.setDefault("UTC");
您要吗?谢谢。更正了url