【问题标题】:What is the best way to clear time using Moment.js?使用 Moment.js 清理时间的最佳方法是什么?
【发布时间】:2017-05-07 07:05:35
【问题描述】:

使用 Moment.js 清除浏览器本机日期对象的时间的最佳方法是什么,以便在我的浏览器的当前时区中是今天午夜。

【问题讨论】:

  • 也许startOf('day') 就是您要找的。​​span>
  • @VincenzoC - 请在答案中提供答案,而不是在 cmets 中。
  • Sebastien - 请记住,并非每个本地日都有午夜。如果在 00:00 有一个 DST “弹簧向前”转换,那么一天从 01:00 开始。这种情况发生在巴西和世界其他几个地方。 startOf('day') 将反映这一点。
  • @MattJohnson 你是对的,但我不确定我是否理解 OP 的要求,只是试图提供一个快速链接。我认为一个好的答案必须包括您在第二条评论中添加的考虑(我不知道午夜的 spring-forward “问题”)

标签: javascript timezone momentjs


【解决方案1】:

与您所问的最接近的内容如下:

var d = new Date();                // your browser native date object
var m = moment(d).startOf('day');  // move to the start of the day in the local time zone
d = m.toDate();                    // convert back to a native date object

但是,如果这是您唯一想做的事情,则不需要 Moment。做吧:

d = d.setHours(0, 0, 0, 0);

另外,请记住,并非每个当地日子都有午夜。如果在 00:00 有一个 DST “弹簧向前”转换,那么一天从 01:00 开始。这种情况发生在巴西和世界其他几个地方。在这种情况下,Moment 的 startOf('day') 函数将确保结果为 1:00,但 setHours 方法可能设置为 1:00,也可能设置为前一天的 23:00,具体取决于浏览器的实现。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-02-03
    • 1970-01-01
    • 2010-09-07
    • 1970-01-01
    • 1970-01-01
    • 2011-03-25
    相关资源
    最近更新 更多