从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
事实上我只是想从日期中提取小时和分钟,我怎样才能用正确的小时和分钟来做?
答案 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')