JavaScript 的解析会识别什么字符串日期格式?

发布于 2024-10-26 07:26:40 字数 444 浏览 3 评论 0 原文

我知道在使用 dateString 参数在 JavaScript 中构造 Date 对象时,该字符串必须是 parse() 可以识别的内容。

parse 可以识别什么日期格式?

例如:

var postDate = new Date("2011-03-08T23:52:38");

在 Chrome 和 Internet Explorer 中工作,但在 iPhone 上失败(返回 1970 年 1 月 1 日)。

我找不到关于 .parse() 方法或构造函数的任何关于参数应该是什么的正式文档。

yyyy-mm-ddThh:nn:ss 格式无效。允许的格式字符串是什么?

I know when constructing a Date object in JavaScript with a dateString parameter, the string must be something that parse() can recognize.

What date format can parse recognize?

For example:

var postDate = new Date("2011-03-08T23:52:38");

works in Chrome and Internet Explorer, but fails on an iPhone (returns Jan 1, 1970).

I cannot find any formal documentation on the .parse() method, or the constructor, about what the parameter should be.

The format yyyy-mm-ddThh:nn:ss doesn't work. What is the allowed format string?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

冷弦 2024-11-02 07:26:40

Date.parse()<的MDC文档< /code> 声明(引用)

它接受IETF标准 (RFC
第1123章 5.2.14节及其他地方)
日期语法:
“Mon, 25 Dec 1995 13:30:00 GMT”



OP 编辑​​:

用于创建此日期时间字符串的 .NET 语法:

/*
 * r (RFC1123Pattern)
 *      ddd, dd MMM yyyy HH':'mm':'ss 'GMT'
 *      Mon, 15 Jun 2009 20:45:30 GMT
 */
dateTime.ToUniversalTime().ToString("r", CultureInfo.InvariantCulture); //"r" = RFC1123Pattern

编辑:r(RFC1123 模式)始终附加“GMT”,即使时间不是 GMT(它是本地时间)。您需要首先调用 .ToUniversalTime(),以使时间实际上为 GMT。

The MDC documentation of Date.parse() states (quoting) :

It accepts the IETF standard (RFC
1123
Section 5.2.14 and elsewhere)

date syntax:
"Mon, 25 Dec 1995 13:30:00 GMT".


OP Edit:

.NET syntax to create this datetime string:

/*
 * r (RFC1123Pattern)
 *      ddd, dd MMM yyyy HH':'mm':'ss 'GMT'
 *      Mon, 15 Jun 2009 20:45:30 GMT
 */
dateTime.ToUniversalTime().ToString("r", CultureInfo.InvariantCulture); //"r" = RFC1123Pattern

Edit: The r (RFC1123 pattern) always appends "GMT", even though the time isn't GMT (it's local). You need to call .ToUniversalTime() first, in order to have the time actually be GMT.

笑叹一世浮沉 2024-11-02 07:26:40

使用 Date 的 toJSON 方法生成的格式就可以了。这与 toISOString 方法相同。

日期格式为 YYYY-MM-DDTHH:mm:ss.sssZ

注意:时区始终为 UTC,如后缀“Z”所示。

var d = new Date();
console.log(d.toJSON());
console.log(d.toJSON() === d.toISOString());
console.log(Date.parse(d.toJSON()) === Date.parse(d.toISOString()));

您可能会发现显示的日期与时钟上显示的日期不同;请记住时区是 UTC。

参考文献:

Date.prototype.toJSON()

Date.prototype.toISOString()

Using the format that is produced by Date's toJSON method will work. This is the same as the toISOString method.

The date format is YYYY-MM-DDTHH:mm:ss.sssZ

Note: The time zone is always UTC as denoted by the suffix "Z".

var d = new Date();
console.log(d.toJSON());
console.log(d.toJSON() === d.toISOString());
console.log(Date.parse(d.toJSON()) === Date.parse(d.toISOString()));

You may find that the date shown isn't the same as on your clock; remember the time zone is UTC.

References:

Date.prototype.toJSON()

Date.prototype.toISOString()

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文