在 IE 11 中格式化日期
Formatting date in IE 11
我们正尝试在电子商务 JavaScript 应用程序中设置日期格式。
我们尝试使用将“00:00:00”附加到日期字符串。
但在 IE 11 中,使用该字符串我们会收到无效日期错误。
所以我们尝试了更多选项,但我们得到的日期对象是意外的:
1. new Date(2017, 02, 10, 00, 00, 00, 000) -->
Fri Mar 10 2017 00:00:00 GMT-0800 (Pacific Standard Time)
2. new Date("2017-02-10T00:00:00.000Z") -->
Thu Feb 09 2017 16:00:00 GMT-0800 (Pacific Standard Time)
唯一有效的方法就是使用"moment.js"来解决这些问题。
感谢和问候
不清楚您是在询问有关创建日期还是将其格式化为字符串的问题。不过这里并没有什么意外。
new Date(2017, 02, 10, 00, 00, 00, 000)
您不应在数字上使用前导零。在某些情况下,在旧版浏览器中,它可以指示八进制而不是十进制。无论如何,以上将根据主机系统时区设置在 00:00:00 生成 2017 年 3 月 10 日的 "local" 日期。你的似乎设置为 UTC-08:00。
鉴于:
new Date("2017-02-10T00:00:00.000Z")
您要求 Date 构造函数解析一个字符串,这是众所周知的不擅长的事情。但是,早于 IE 8 的浏览器应该正确解析它并在 00:00:00 UTC 生成 2017 年 3 月 10 日的日期,其时区偏移量为 00:00.
由于您的时区是 -08:00,当您将其写入输出时,值将针对主机时区(即本地)进行调整,因此您会看到 2017 年 3 月 9 日 16 点的日期:00:00 (或下午 4 点)。
请注意,使用内置的 Date.prototype.toString 将导致依赖于实现的字符串在每个主机中可能不同。如果您需要有关格式化日期的信息,请参阅 Where can I find documentation on formatting a date in JavaScript? or How to format a JavaScript date。
Is the only effective way is to use "moment.js" to solve these issues.
不清楚您要解决什么问题,但是一个好的、轻量级的解析和格式化库是 fecha.js. If you also want to do arithmetic, you might find moment.js 合适的。但是编写一个函数来解析特定格式或创建合适的字符串并不难,请参阅上面的链接。
我们正尝试在电子商务 JavaScript 应用程序中设置日期格式。 我们尝试使用将“00:00:00”附加到日期字符串。 但在 IE 11 中,使用该字符串我们会收到无效日期错误。
所以我们尝试了更多选项,但我们得到的日期对象是意外的:
1. new Date(2017, 02, 10, 00, 00, 00, 000) -->
Fri Mar 10 2017 00:00:00 GMT-0800 (Pacific Standard Time)
2. new Date("2017-02-10T00:00:00.000Z") -->
Thu Feb 09 2017 16:00:00 GMT-0800 (Pacific Standard Time)
唯一有效的方法就是使用"moment.js"来解决这些问题。
感谢和问候
不清楚您是在询问有关创建日期还是将其格式化为字符串的问题。不过这里并没有什么意外。
new Date(2017, 02, 10, 00, 00, 00, 000)
您不应在数字上使用前导零。在某些情况下,在旧版浏览器中,它可以指示八进制而不是十进制。无论如何,以上将根据主机系统时区设置在 00:00:00 生成 2017 年 3 月 10 日的 "local" 日期。你的似乎设置为 UTC-08:00。
鉴于:
new Date("2017-02-10T00:00:00.000Z")
您要求 Date 构造函数解析一个字符串,这是众所周知的不擅长的事情。但是,早于 IE 8 的浏览器应该正确解析它并在 00:00:00 UTC 生成 2017 年 3 月 10 日的日期,其时区偏移量为 00:00.
由于您的时区是 -08:00,当您将其写入输出时,值将针对主机时区(即本地)进行调整,因此您会看到 2017 年 3 月 9 日 16 点的日期:00:00 (或下午 4 点)。
请注意,使用内置的 Date.prototype.toString 将导致依赖于实现的字符串在每个主机中可能不同。如果您需要有关格式化日期的信息,请参阅 Where can I find documentation on formatting a date in JavaScript? or How to format a JavaScript date。
Is the only effective way is to use "moment.js" to solve these issues.
不清楚您要解决什么问题,但是一个好的、轻量级的解析和格式化库是 fecha.js. If you also want to do arithmetic, you might find moment.js 合适的。但是编写一个函数来解析特定格式或创建合适的字符串并不难,请参阅上面的链接。