javascript - 为什么 .setHours(0,0,0,0) 会导致 T07:00:00.000Z
问题描述
我需要开始一天和一天结束。我一直在阅读,如果我要使用momentjs做约会的东西。虽然我现在可能会走这条路,但我认为我不需要那么多的日期操作,所以我会尽量不向这个项目添加比需要更多的 npm 包。我在读到您可以设置一天的开始日期,.setHours(0,0,0,0)
但是当我在终端中尝试此操作时,我看到时间已设置为T07:00:00.000Z
有人可以解释原因吗?感觉应该是T00:00:00.000Z
let date = new Date('2019-08-16T20:30:38Z');
date.setHours(0,0,0,0);
console.log(date);
解决方案
我住在中央时区,UTC -5 每年的这个时候,所以当我运行它时我得到 T05:00:00.000Z。由于您居住在太平洋时区(大概),UTC -7,因此您将获得 UTC 早上 7 点。您正在设置本地时间,但以 UTC 格式输出时间。从文档(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/setHours):
setHours() 方法根据本地时间设置指定日期的小时数,并返回从 1970 年 1 月 1 日 00:00:00 UTC 到更新的 Date 实例表示的时间的毫秒数
推荐阅读
- javascript - 找不到角度服务工作者 ngsw_serviceworker.es6.js.map
- go - 如何使用 gopkg 安装 ginkgo 和 gomega?
- ruby-on-rails - 如何使用 Active Storage 从 URL 存储图像
- c - 编译旧的 C 代码 + X86 分解它
- sql - 如何将数据插入具有引用和范围的表中
- c# - Xamarin iOS 等效于 ApplicationData.Current.LocalFolder
- scala - 当我尝试在项目中添加节点模块时,sbt 无法运行
- sql - SQL Server - 将 SELECT 语句存储到存储过程中的变量中
- mysql - MySQL - 尝试将 `GROUP_CONCAT` 与 `COUNT()` 结合使用
- inno-setup - Inno Setup:未知标识符“IsWin64”