如何用momentjs获取开始和结束日期?

时间:2015-11-09 17:46:35

标签: fullcalendar momentjs

我得到了我的日历的开始日期:

var date_start = $('#calendar').fullCalendar('getView').start

.toDate()我可以在chrome控制台中看到此结果:

  

Mon Nov 09 2015 01:00:00 GMT + 0100(ora solare Europa occidentale)

我需要显示这个结果:

  

Mon Nov 09 2015 00:00:00

我也想要结束这一天,应该是这样的:

  

2015年11月10日星期二00:00:00

我如何才能达到这个结果?

1 个答案:

答案 0 :(得分:2)

toDate会返回一个JavaScript Date对象。因此,任何输出字符串都基于Date.toString的特定实现。如果您想要特定输出,则应使用时刻format函数进行格式化。

date_start.format("ddd MMM DD YYYY HH:mm:ss")

然而,这将返回01:00,你要求00:00。目前尚不清楚您是在询问本地开始日期,还是要求提供相等的UTC值。

如果您想要当地的当地活动:

date_start.clone().startOf('day').format("ddd MMM DD YYYY HH:mm:ss")

如果您想要等效的UTC值:

date_start.clone().utc().format("ddd MMM DD YYYY HH:mm:ss")

克隆非常重要,因为时刻对象是可变的。如果你没有克隆,那么你将操纵原始时刻,这可能会在fullcalendar中产生意想不到的副作用。您可以使用上面显示的clone函数,也可以将其包含在moment函数中,如moment(date_start)...两者都做同样的事情。

对于结束值,看起来你想要第二天的开始,所以这样做:

date_start.clone().startOf('day').add(1, 'day').format("ddd MMM DD YYYY HH:mm:ss")

或者:

date_start.clone().utc().add(1, 'day').format("ddd MMM DD YYYY HH:mm:ss")

再次选择与您的使用场景相对应的那个。

仅供参考 - 你似乎要求UTC,但在绝大多数情况下,当向用户显示诸如fullcalendar之类的日历时,本地时间更为相关。