日期格式化 YYYY-MM-DD 出现时间偏移量
创始人
2024-03-14 05:05:44
0

在js中,很多时候需要把日期字符串转换为一个 Date 对象。

如果得到的日期字符串有时间还好办,如果没有时间,只有日期的格式,例如 2022-12-01 这样的字符串呢?

大部分人可能什么都没想,直接就调用了 new Date(datestring)。可是事情没有想象中那么简单。

发现了问题了吗?获得日期时间被减去了 5 个小时。

这是因为我们的浏览器在美国东部时间。

在 MDN 中,有一个下面的注释:

Note: When parsing date strings with the Date constructor (and Date.parse, they are equivalent), always make sure that the input conforms to the ISO 8601 format (YYYY-MM-DDTHH:mm:ss.sssZ) — the parsing behavior with other formats is implementation-defined and may not work across all browsers. Support for RFC 2822 format strings is by convention only. A library can help if many different formats are to be accommodated.Date-only strings (e.g. "1970-01-01") are treated as UTC, while date-time strings (e.g. "1970-01-01T12:00") are treated as local. You are therefore also advised to make sure the input format is consistent between the two types.

不要忽略掉上面的这个注释。

用人话解释一下就是,如果直接给 new Date 传入’YYYY-MM-DD’ 这样的字符串作为参数的话,得到的 Date 对象是一个基于 UTC 的对象实例。

如上面的代码实例中,

const date2 = new Date('2022-12-01')

date2 在进行实例化的时候,得到的是 2022-12-01 00:00:00 GMT+00:00 这样的时间,再被转换美国的东部时区的时候,就少了 5 个小时。

问题解决

要解决这个问题,其实就使用了 moment 来对日期进行格式化就可以了。

moment('2022-12-01').toDate();

使用上面的代码,就可以避免在 new Date() 进行日期格式化的时候因为时区的问题导致的时间便宜。

这个便宜有可能会导致多一天或者少一天的情况。

处理日期,还是尽量使用 moment 库吧。

日期格式化 YYYY-MM-DD 出现时间偏移量 - 前端 - OSSEZ在js中,很多时候需要把日期字符串转换为一个 Date 对象。 如果得到的日期字符串有时间还好办,如果没有时间,只有日期的格式,例如 2022-12-01 这样的字符串呢? 大部分人可能什么都没想,直接就调用了 new Date(datestring)。可是事情没有想象中那么简单。 发现了问题了吗?获得日期时间被减去了 5 个小时。 这是因为我们的浏览器在美国东部时间。 在 MDN 中,有一个下面的注释: Note: …https://www.ossez.com/t/yyyy-mm-dd/14233

相关内容

热门资讯

AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
AWR报告解读 WORKLOAD REPOSITORY PDB report (PDB snapshots) AW...
AWS管理控制台菜单和权限 要在AWS管理控制台中创建菜单和权限,您可以使用AWS Identity and Access Ma...
​ToDesk 远程工具安装及... 目录 前言 ToDesk 优势 ToDesk 下载安装 ToDesk 功能展示 文件传输 设备链接 ...
群晖外网访问终极解决方法:IP... 写在前面的话 受够了群晖的quickconnet的小水管了,急需一个新的解决方法&#x...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
Azure构建流程(Power... 这可能是由于配置错误导致的问题。请检查构建流程任务中的“发布构建制品”步骤,确保正确配置了“Arti...