gpt4 book ai didi

JavaScript 日期变量返回字符串输入的错误日期

转载 作者:行者123 更新时间:2023-12-01 00:04:05 25 4
gpt4 key购买 nike

我从 Web 服务接收到一个包含日期时间的字符串,格式为 dd/MMM/yyyy hh:mm:ss 无法更改 Web 服务输出以匹配此 JavaScript应用程序需求。

为了简单起见,我将 Web 服务数据替换为具有以下值的硬编码字符串。

// The raw input from the web service
var dateOne = new Date("04/Mar/2020 08:00:00");// Invalid Date {}

// After .replace to make it valid
var dateTwo = new Date("04-Mar-2020 08:00:00");// Sat Mar 04 2000 10:00:00

dateOne 无效(曾经有效,但最近证明很困难)

dateTwo 有效但不正确(根据时区从 8 到 10 的时间更改是正确的,但我的时区不是过去 20 年)

如果有人能指出我正确的方向,我将不胜感激。预先感谢您。

最佳答案

不幸的是,从日期字符串初始化日期,你这样做的方式是 strongly discouraged

Note: Parsing of date strings with the Date constructor (and Date.parse(), which works the same way) is strongly discouraged due to browser differences and inconsistencies.

  • Support for RFC 2822 format strings is by convention only.
  • Support for ISO 8601 formats differs in that date-only strings (e.g. "1970-01-01") are treated as UTC, not local.

但是,您可以使用 momentJS 显式解析日期字符串。

const dateString = '04/Mar/2020 08:00:00';
const date = moment(dateString, 'DD/MMM/YYYY HH:mm:ss');
console.log(date);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js"></script>

关于JavaScript 日期变量返回字符串输入的错误日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60503880/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com