当前位置: 首页 > 知识库问答 >
问题:

为什么safari日期字段显示为无效日期?[副本]

岳承悦
2023-03-14

Safari不接受我输入的时间格式,原因是什么?

 this.state.dataDate = "2019-10-15 11:59:27";
 var cacheDateUTC = new Date(this.state.dataDate + "Z");
 var cacheDateLocal = cacheDateUTC.toLocaleString();

 // Chrome browser
 -- "10/15/2019, 3:19:54 PM"

 // Safari browser
 -- "Invalid Date"

我找到了解决办法;

 var cacheDateUTC = moment(this.state.dataDate + "Z").format("MM/DD/YYYY, LTS");

共有2个答案

曹德明
2023-03-14

“2019-10-15 11:59:27”不是ECMA-262支持的格式,因此解析依赖于实现。Safari将其视为对受支持格式之一的错误尝试,因为缺少“T”,因此返回无效日期。

支持的格式要求日期和时间组件之间有一个“T”,因此符合“2019-10-15T11:59:27”。

但是,这应该被视为本地,但Safari将其视为UTC。

底线是不依赖内置解析器,始终手动解析时间戳(时间值除外,它可以作为数字直接传递给构造函数)。

另请参见为什么日期。解析是否给出错误的结果?

祁杰
2023-03-14

Safari在处理日期时间的方式上有一些主要区别。

您只需使用时刻库即可绕过它们。

你可以在这里找到留档:https://momentjs.com/

moment适用于safari以及所有其他常见和当前浏览器。

 类似资料:
  • 问题内容: alert(new Date(‘2010-11-29’)); chrome,ff没问题,但是Safari会喊“无效日期”。为什么呢 编辑:好的,根据下面的评论,我使用了字符串解析并尝试了以下操作: 编辑 :似乎人们仍在这里着陆-今天,我将使用或完成此操作。Date-fns也非常轻巧。 问题答案: 该模式不是构造函数的官方支持格式。Firefox似乎支持它,但不要指望其他浏览器也这样做。

  • 问题内容: 我正在使用日期输入字段,并使用Angular在我的ui中格式化所选日期。但是格式化日期总是比所选日期少1天。为什么会这样,我该如何解决? HTML: JS: 我有一个小提琴来演示这个问题:http : //jsfiddle.net/wittersworld/uY3s9/ 编辑: 我用一个有效的解决方案更新了小提琴:http : //jsfiddle.net/wittersworld/u

  • 问题内容: 这是关于如何在django支持的网站中使用jQuery 。 是 我正在使用。 我正在使用和创建成功显示日期。 但未显示日期选择器图标。我正在使用Django模型形式。 问题答案: 你可以使用来将a传递给表单,该表单将在html中呈现。然后,将读取该内容以呈现功能。 这是一个例子: …或使用ModelForm时通过Meta类中的属性: 现在在模板中:

  • 这是我到目前为止用于此任务的代码: 但是如果我输入了一个无效的日期,比如,它将转换为,而不是抛出异常。

  • 问题内容: 我有一个传统的postgres db,它具有将日期列强制转换为字段(不要问)。我想更改表和列以包含实际日期。因为这有效: 我天真地认为这可能有效: 但事实并非如此。有无知的线索吗? 问题答案: 这 恰好 符合OP的要求。我们这里有一个简单的思想/错别字。 在手册中了解有关ALTER TABLE的更多信息 。 演示: 提示:您写的不是。

  • 我有一个java代码,以特定的格式输入日期。 现在我输入的是无效日期。但它返回的日期是2016年1月14日星期四18:31:30。为什么会这样?如何使其返回null作为日期?