momentjs startOf对现有日期对象不起作用

时间:2017-06-28 20:24:17

标签: momentjs

我正试图利用时刻来开始一天的活动。我得到了不同的结果:

moment().startOf('day'); //good
moment(new Date()).startOf('day'); //this does not work!

小提琴:https://jsfiddle.net/y1of77wx/

实际情况是我在一个以日期对象作为参数的函数中执行此操作:

function doWork(dt) {
   return moment(dt).startOf('day');
}

我确信解决方案很简单,但我只是遗漏了一些东西。

1 个答案:

答案 0 :(得分:4)

我建议使用format()来显示时刻对象的值。

正如Internal Properties指南所述:

  

Moment对象具有多个以_为前缀的内部属性。

     

最常见的内部属性是_d属性,它包含Moment包装器的JavaScript日期。通常,开发人员对控制台输出_d的值感到困惑。

     

...

     

要打印出片刻的价值,请使用.format().toString().toISOString()

这里有一个显示正确结果的片段:

console.log(moment().startOf('day').format());
console.log(moment(new Date()).startOf('day').format());
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script>