欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

如何在JavaScript中将字符串转化为日期:JS里的日期解析技巧

最编程 2024-02-11 15:03:40
...

日期是一个相当基本的概念。我们一直在使用它们。计算机也一直在使用它们。但是,使用JavaScript解析日期可能有点......嗯,有趣。

在这篇文章中,我们将:

  1. 讨论日期格式化问题
  2. 用JavaScript把一个小的字符串变成一个合适的日期对象。
  3. 将一个日期对象解析成一个数字
  4. 展示一种使用参数而不是字符串来创建日期对象的替代方法。

日期是很棘手的,但它们的使用也是非常有帮助的。而一旦你花了一点时间去了解基础知识,你的信心就会增强:

date

什么是JavaScript中的日期格式?

当然是ISO 8601!这是交流日期和时间数据的国际标准的名称。在JavaScript中处理日期时,我们需要使用这种格式。

下面是这个格式的样子。你已经对它很熟悉了--它只是把日期和时间合并成一个大的信息,让JavaScript可以很方便地使用:

// YYYY-MM-DDTHH:mm:ss.sssZ
// A date string in ISO 8601 Date Format

如何在JavaScript中使用new Date() 构造函数

new Date() 是在JavaScript中创建一个新日期的构造函数。震惊吧!????

shocker

如果你没有向新的日期构造函数传递任何东西,它将给你一个当前日期和时间的日期对象:

new Date()

// Thu Jun 23 2022 20:35:51 GMT-0400 (Eastern Daylight Time)

在没有任何参数的情况下创建的新日期会返回当前的日期和时间。

请注意,除了月、日和年之外,一个日期对象可以,而且经常应该包含精确到毫秒的时间。

如何用一个字符串创建一个新的日期

你可以将一个日期字符串传入new Date() 来创建一个日期对象。

在创建日期对象时,你不需要指定时间。

new Date('2022-06-13') 是完全有效的。然而,当你在控制台记录这个新的日期时,你会看到一个时间将被自动分配,尽管我们没有声明一个时间:

let aDate = new Date('2022-06-13')

// Sun Jun 12 2022 20:00:00 GMT-0400 (Eastern Daylight Time)

一个没有声明时间的字符串日期仍然会被分配一个时间。

这可能会在矩阵中产生分裂,最好是包含一个完整的日期。例如,由于本地系统时间被用来解释日期,取决于你的计算机在世界的哪个地方,你可以从同一个非特定的日期得到不同的结果。

glitch

因此,当把一个字符串传入new Date() ,使用一个完整的日期,包括小时:分钟.毫秒。

如下图所示,一个大写的T将日期部分与时间部分分开。

new Date('2022-05-14T07:06:05.123')

// Sat May 14 2022 07:06:05 GMT-0400 (Eastern Daylight Time)

尽可能使用完整的日期和时间

如何用数字创建一个新的日期

你也可以在new Date() 构造函数中传递一个数字。下面会有更多关于数字代表的内容--但是new Date(1656033105000) ,比如说,会返回一个合法的日期:

console.log(Date(1656033105000))

// Thu Jun 2022 21:12:06 GMT-0400 (Eastern Daylight Time)

巨大的数字也代表日期

如何用参数创建一个新的日期

下面还有更多的内容......你最多可以向new Date() 传递七个参数,为日期构造函数创建一个更简单的日期和时间表示方法:

new Date(2022,03,14,07,33,245)

// Thu Apr 14 2022 07:37:05 GMT-0400 (Eastern Daylight Time)

一个从年份开始到毫秒结束的参数递减列表

什么是Date.parse()?

所以,如果你在一个日期对象上使用parse方法,会发生一件有趣的事情。它吐出了一个巨大的数字。

Date.parse() 告诉我们自1970年1月1日以来已经过去了多少毫秒。这在比较多个日期时很有帮助。当它们被转换为数字而不是字符串时,更容易比较和测量日期的差异:

let anotherDate = new Date(2012,07,12,12,00,234)

Date.parse(anotherDate)

// 1344787434000

Date.parse 返回自1970年1月1日以来的毫秒数。

哪一个更好--用论据或字符串制作的日期?

在约会时,为了长期的成功,要学会很好的争论。当在JavaScript中使用日期时,为了长期的成功,使用参数而不是字符串。

new Date(2022, 00, 12, 8, 01, 33, 456)

这比用字符串创建一个日期要容易一些。参数是按降序输入的,从年份开始,到毫秒结束。

这里唯一棘手的部分是:月份的索引为零。所以,一月是00:

new Date(2022,00,12,8,01,33,456)

// Wed Jan 12 2022 08:01:33 GMT-0500 (Eastern Standard Time)

在使用日期结构的参数时,不要忘记月份是零索引的。

如何更深入地使用Javascript日期

这只是Date对象的皮毛,请查看MDN的深入研究。就像所有的事情一样,那里是一个信息的宝库。

deep

不过,你现在已经掌握了基础知识。去把它付诸实践吧。你现在知道如何用new Date() 在JavaScript中创建一个日期对象了。你可以通过不向构造函数传递任何东西来获取当前的日期和时间,或者你可以传递一个字符串、一个数字或参数。

感谢阅读

谢谢你的阅读!我在这里写关于设计和开发的文章:https://blog.eamonncottrell.com/

你也可以在TwitterLinkedIn上找到我。

祝你有个愉快的一天!