new Date() 构造函数是魔鬼 – 哦,我害怕它!这导致我在工作中犯了很多错误,其中一些非常奇怪。,,我们必须非常小心地对待它,否则我们很容易陷入它的陷阱。,你知道吗?“Safari”浏览器不支持“YYYY-MM-DD”形式的初始化时间。除它之外的很多浏览器,例如Chrome浏览器,都完美支持这种格式。,如果您编写这样的代码,您的应用程序将在“Safari”浏览器中收到无效日期错误。,为了正确处理这个问题,我们需要以“YYYY/MM/DD”的形式初始化时间。,我们应该如何初始化日期 2023 年 5 月 28 日?,我们将 4 作为第二个参数传递给 Date,但为什么不传递 5?,啊! 我讨厌这个功能。处理月份时,日期以 0 开头,0 表示一月,1 表示二月,等等。这个函数很糟糕,非常混乱且有错误。,很难猜测下面的代码代表的真实日期是什么。,也许是 2023 年 2 月的日期?但二月并没有32天,很奇怪,那么到底是什么呢?,让我们编写一个解析日期对象的函数。,哦,新的日期(2023, 1, 32)是2023年3月4日,这太离谱了。,如何将数组转换为指定格式的字符串?很简单,我们可以使用数组的join方法。,但是Date对象并没有提供直接方便的方式来格式化日期,所以我们必须自己编写代码来实现。,就像上面的例子一样,由于Date对象会自动固定日期,所以,我们无法判断一个日期是否真的有效。,很多时候我们会通过传递日期字符串来初始化日期,因为它比 new Date(2023, 4, 28) 使用起来方便得多。,这里也有陷阱,我的朋友,我们必须小心。,如果您传入这样的日期,您将收到无效错误警告。,哇,有时我们需要在工作中确定一年是否是闰年,这有点麻烦,因为 Date 对象也没有提供执行此操作的对象方法。,Date对象提供了获取年、月、日、小时、分钟等的函数。,我们如何确定日期是一年中的第几周?我们只能通过复杂的计算来完成这个目标。,这是一种常见的计算,使用 ISO 8601 标准来计算日期是一年中的第几周。,但显然,它太复杂了,我无法理解这个功能。,Date对象有很多奇怪的行为,我们可以使用一些强大的库来帮助我们。例如Moment.js、Day.js、date-fns等。
© 版权声明
文章版权归作者所有,未经允许请勿转载。