【问题标题】:momentjs startOf does not work on existing date objectmomentjs startOf 不适用于现有日期对象
【发布时间】:2017-06-28 20:24:17
【问题描述】:

我正在尝试使用时刻来开始一天。我得到以下不同的结果:

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');
}

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

【问题讨论】:

    标签: momentjs


    【解决方案1】:

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

    正如Internal Properties 指南所述:

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

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

    ...

    要打印 Moment 的值,请使用 .format().toString().toISOString()

    这里有一个显示正确结果的 sn-p:

    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>

    【讨论】:

    • 这很有趣,它可以正常工作,但显示错误。如果我记录 unix 时间戳,我确实可以看到它发生了变化。
    • @jhilden 即使我记录 unix 时间戳(使用 unix()),输出也是一致的。你看到其他问题了吗?哪个显示错了?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-01
    • 2014-07-08
    • 2012-06-03
    • 1970-01-01
    • 2017-02-02
    • 1970-01-01
    • 2019-01-21
    相关资源
    最近更新 更多