Javascript 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

我在让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 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