【问题标题】:Set current date to UTCHours (0,0,0,0)将当前日期设置为 UTCHours (0,0,0,0)
【发布时间】:2021-02-28 05:11:29
【问题描述】:

我试图以毫秒为单位获取当前日期,然后我想将其设置为 UTCHours(0,0,0,0) 但我收到错误“.setUTCHours 不是函数” 有人知道我在做什么错吗?谢谢!

const startDateInMS = new Date().getTime();
startDateInMS.setUTCHours(0, 0, 0, 0);

【问题讨论】:

  • 不要使用getTime()
  • .getTime() 返回一个数字,即自纪元以来的毫秒数。因此,当您执行 startDateInMS.setUTCHours(0, 0, 0, 0); 时,您实际上是在调用 274957285938.setUTCHours(0,0,0,0),这显然会引发错误,因为数字没有 @ 987654324@ 方法(显然,274957285938 只是一个示例)。
  • 如果我不使用 getTime() 错误就会消失,但新的 Date() 不会设置为 (0,0,0,0)
  • 编辑了我的答案以包括这个问题
  • startDateInMS = new Date().setUTCHours(0,0,0,0).

标签: javascript reactjs date time


【解决方案1】:

简单回答:

const startDateInMS = new Date()
startDateInMS.setUTCHours(0, 0, 0, 0);

console.log(startDateInMS)

setUTCHours() 方法根据通用时间设置指定日期的小时,并返回从 1970 年 1 月 1 日 00:00:00 UTC 到更新的 Date 实例表示的时间的毫秒数。

因此,您上面的代码将采用today 并将时间重置为一天的开始。

docs 中了解更多信息。

getTime() 方法返回自 Unix 纪元以来的毫秒数*

来自https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getTime 所以getTime 只返回一个不附带日期对象原型的数字。

还有一个问题:

如果我不使用 getTime(),错误就会消失,但新的 Date() 不会设置为 (0,0,0,0)

确实如此。检查控制台日志。

【讨论】:

  • 谢谢!我现在明白了这个概念。你知道我为什么会这样吗:这是 2021 年 2 月 27 日星期六 17:00:00 GMT-0700(山地标准时间)开始
  • 正确。您将该日期的小时时间设置为 0...您还期待别的什么吗?
  • @EduardoUrbiola 我在回答中添加了更多解释
  • 我期待得到 00:00:00 但我得到 => 17:00:00
  • 我收到了"2021-02-28T00:00:00.000Z",但我在澳大利亚,明天会发生变化;)
猜你喜欢
  • 2019-01-07
  • 1970-01-01
  • 2014-05-24
  • 1970-01-01
  • 2014-12-07
  • 2014-05-06
  • 2012-11-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多