日期格式化 YYYY-MM-DD 出现时间偏移量

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

在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 库吧。

https://www.ossez.com/t/yyyy-mm-dd/14233

目录
相关文章
|
数据安全/隐私保护 计算机视觉
2024年2月国内如何快速注册OnlyFans最新小白教学
onlyfans软件是一个创立于2016年的订阅式社交媒体平台,创作者可以在自己的账号发布原创的照片或视频,并需要注意的是,网络上可能存在非法或不道德的应用将其设置成付费模式,若用户想查看则需要每月交费订阅。程序,建议你在使用互联网时保持警惕,并遵循相关法律法规。(现在p站没了,大家晚上懂得都懂啊)
2024年2月国内如何快速注册OnlyFans最新小白教学
|
存储 缓存 网络协议
你只会用 Java Sockets?推荐 11 个开源的 Java Socket 框架
你只会用 Java Sockets?推荐 11 个开源的 Java Socket 框架
2123 0
|
Devops jenkins Java
【devops】六、CI、CD入门操作
【devops】六、CI、CD入门操作
253 0
|
3月前
|
Oracle 关系型数据库 Linux
VirtualBox 7.1.10 (macOS, Linux, Windows) - 开源跨平台虚拟化软件
VirtualBox 7.1.10 (macOS, Linux, Windows) - 开源跨平台虚拟化软件
188 0
VirtualBox 7.1.10 (macOS, Linux, Windows) - 开源跨平台虚拟化软件
|
8月前
|
存储 SQL 运维
Hologres OLAP场景核心能力介绍-2024实时数仓Hologres线上公开课02
本次分享由Hologres产品经理赵红梅(梅酱)介绍Hologres在OLAP场景中的核心能力。内容涵盖OLAP场景的痛点、Hologres的核心优势及其解决方法,包括实时数仓分析、湖仓一体加速、丰富的索引和查询性能优化等。此外,还介绍了Hologres在兼容PG生态、支持多种BI工具以及高级企业级功能如计算组隔离和serverless computing等方面的优势。最后通过小红书和乐元素两个典型客户案例,展示了Hologres在实际应用中的显著效益,如运维成本降低、查询性能提升及成本节省等。
226 7
|
数据采集 存储 XML
Python 爬虫实战:从入门到精通
【8月更文挑战第28天】本文将带你进入Python爬虫的世界,从基础概念到实战操作,一步步教你如何用Python编写一个高效的网络爬虫。你将学习到如何解析网页、提取数据、存储数据以及应对反爬策略等技能。无论你是初学者还是有一定经验的开发者,都能在这篇文章中找到有价值的信息和技巧。让我们一起探索Python爬虫的奥秘吧!
|
消息中间件 数据采集 编解码
apache mina
apache mina
155 0
|
存储 SQL 缓存
构建高效的矢量数据库查询:查询语言与优化策略
【4月更文挑战第30天】本文探讨了构建高效矢量数据库查询的关键点,包括设计简洁、表达性强的查询语言,支持空间操作、函数及索引。查询优化策略涉及查询重写、索引优化、并行处理和缓存机制,以提升查询效率和准确性。这些方法对处理高维空间数据的应用至关重要,随着技术进步,矢量数据库查询系统将在更多领域得到应用。
|
前端开发
【Netty 网络通信】ChannelFuture 解析
【1月更文挑战第9天】【Netty 网络通信】ChannelFuture 解析
|
算法 安全 Java
面试题:非对称加密和对称加密的区别以及优缺点
面试题:非对称加密和对称加密的区别以及优缺点
209 0