新的Date对象Javascript再加1小时

时间:2017-01-21 15:52:05

标签: javascript date fullcalendar momentjs

从Date对象中提取小时和分钟时,我有一种非常奇怪的行为。我的初始对象日期显示2017-01-16T19:00:00。这是示例代码:

var dt = new Date(date);
console.log("intial start date: "+date.format());
console.log("start date: "+dt);

但是当我创建一个新的Date对象(dt)来提取小时和分钟时,我可以看到距离初始值1小时....时区似乎是正确的....

这是日志:

intial start date: 2017-01-16T19:00:00
start date: Mon Jan 16 2017 20:00:00 GMT+0100 (Romance Standard Time)
start date hours: 20 Minutes: 0

事实上我只是想从日期中提取小时和分钟,我怎样才能用正确的小时和分钟来做?

1 个答案:

答案 0 :(得分:2)

显然您正在使用fullCalendar,它使用Moment来处理日期。因此,当您致电.format()时,您会调用由Moment定义的方法。 documentation on that method说:

  

从版本1.5.0开始,在没有格式的情况下调用moment#format将默认为moment.defaultFormat。开箱即用,moment.defaultFormat是ISO8601格式YYYY-MM-DDTHH:mm:ssZ

因此,通过不为.format()指定参数,日期/时间将在GMT 00:00时区中呈现,这不是您的。要解决此问题,请提供格式参数,例如:

date.format('DD/MM/YYYY HH:mm:ss')