当前位置: 首页 > 面试题库 >

Safari中的日期无效

满子实
2023-03-14
问题内容

alert(new Date(‘2010-11-29’));

chrome,ff没问题,但是Safari会喊“无效日期”。为什么呢

编辑:好的,根据下面的评论,我使用了字符串解析并尝试了以下操作:

alert(new Date('11-29-2010')); //doesn't work in safari
alert(new Date('29-11-2010')); //doesn't work in safari
alert(new Date('2010-29-11')); //doesn't work in safari

编辑 :似乎人们仍在这里着陆-今天,我将使用momentdate-fns完成此操作。Date-fns也非常轻巧。


问题答案:

该模式yyyy-MM-dd不是Date构造函数的官方支持格式。Firefox似乎支持它,但不要指望其他浏览器也这样做。

以下是一些受支持的字符串。

  • MM-dd-yyyy
  • yyyy / MM / dd
  • MM / dd / yyyy
  • MMMM dd,yyyy
  • MMM dd,yyyy

DateJS似乎是解析非标准日期格式的好库。

编辑 :引用第15.9.1.15节的内容:

日期时间字符串格式

ECMAScript基于ISO 8601扩展格式的简化,为日期时间定义了字符串交换格式。格式如下:YYYY-MM-
DDTHH:mm:ss.sssZ其中字段如下:

  • YYYY是公历中年份的十进制数字。
  • “-”(连音)在字符串中实际出现两次。
  • MM是从01(一月)到12(十二月)的一年中的月份。
  • DD是当月的一天,从01到31。
  • “ T”字面上出现在字符串中,以指示时间元素的开始。
  • HH是自午夜以来已过去的完整小时数,以两位十进制数字表示。
  • “:”(冒号)在字符串中实际出现两次。
  • mm是从小时开始算起的完整分钟数,以两位十进制数字表示。
  • ss是从分钟开始算起的完整秒数,以两位十进制数字表示。
  • “。” (点)字面上出现在字符串中。
  • sss是自秒数开始以来的完整毫秒数,为三个十进制数字。这俩 ”。” 毫秒字段可以省略。
  • Z是时区偏移量,指定为“ Z”(对于UTC)或“ +”或“-”,后跟时间表达式hh:mm

此格式包括仅日期形式:

  • YYYY
  • YYYY-MM
  • YYYY-MM-DD

它还包括仅时间形式,并附加了可选的时区偏移量:

  • 高度:mm
  • 高度:毫米
  • THH:mm:ss.sss

还包括“日期时间”,它可以是上述的任何组合。

因此,似乎YYYY-MM-DD已包含在标准中,但由于某些原因,Safari不支持它。

更新 :查看datejs文档后,使用它,应使用类似以下代码的方法解决您的问题:

var myDate1 = Date.parseExact("29-11-2010", "dd-MM-yyyy");
var myDate2 = Date.parseExact("11-29-2010", "MM-dd-yyyy");
var myDate3 = Date.parseExact("2010-11-29", "yyyy-MM-dd");
var myDate4 = Date.parseExact("2010-29-11", "yyyy-dd-MM");


 类似资料:
  • Safari不接受我输入的时间格式,原因是什么? 我找到了解决办法;

  • 本文向大家介绍Safari中的HTML5日期字段和占位符文本,包括了Safari中的HTML5日期字段和占位符文本的使用技巧和注意事项,需要的朋友参考一下 占位符属性不支持输入类型日期上的输入元素。 但是,您可能已经看到它在Safari Web浏览器上有效,因为它不支持日期类型。那将意味着该属性将被忽略,而其余仅是纯文本字段。 因此,以下在Safari桌面上有效- 和HTML-

  • 我有两个日期,都是有效的ISO-8601格式,我正在尝试将它们转换为日期对象。 为什么JavaScript无法将第二个日期识别为有效的ISO-8601格式? 如何以这种格式创建Date对象?

  • 问题内容: 我想说出JS中有效和无效日期对象之间的区别,但不知道如何: 有编写函数的想法吗? 建议使用Ash 来分析日期字符串,这为检查日期字符串是否有效提供了一种权威方法。 如果可能的话,我希望我的API接受Date实例,并能够检查/确认它是否有效。Borgar的解决方案可以做到这一点,但是我需要在浏览器中对其进行测试。我也想知道是否有更优雅的方法。 Ash使我考虑完全不让我的API接受实例,这

  • 问题内容: 我正在针对从Excel文件导入的数据运行SQL语句。在此SQL中,我正在检查用户是否已使用IsDate函数正确输入了日期。由于这是尚未转换的原始数据,因此所有日期都存储在varchar数据类型字段中。 在某些情况下,如果用户输入的日期格式明显不正确,IsDate将返回1(有效日期)。 例如: 关于如何处理此问题的任何建议? 谢谢! ps Smacking用户没有帮助。 问题答案: 我做

  • 我已经记录了用于从日期选择器中选择日期的selenium代码。在运行测试用例时,日期选择器会弹出并正确突出显示所选日期。但是没有选择日期。代码如下所示:- 此异常仅出现在记录的代码中。我使用的是selenium-server-standalone-2 . 45 . 0 jar。