JS Date.parse() 函数详解

Date.parse()函数用于分析一个包含日期的字符串,并返回该日期与 1970 年 1 月 1 日午夜之间相差的毫秒数。

该函数属于Date对象,所有主流浏览器均支持该函数。

语法

Date.parse()的语法如下:

Date.parse( dateString )

参数

参数描述
dateString String类型一个表示日期的字符串。

返回值

Date.parse()函数的返回值为Number类型,返回该字符串所表示的日期与 1970 年 1 月 1 日午夜之间相差的毫秒数。

下面这些规则控制着parse()方法所能成功分析的字符串:

  1. 短日期可使用/日期分隔符,但是必须符合月/日/年的格式,例如7/20/966/15/2008
  2. July 10 1995形式表示的长日期中的年、月、日可以按任何顺序排列,而且年份可以用2位数或4位数的形式表示。如果使用2位数的形式来表示年份,则该年份必须大于或等于 70。
  3. 括号中的任何文本都被视为注释。这些括号可以嵌套。
  4. 逗号和空格被视为分隔符。允许使用多个分隔符。
  5. 月和日的名称必须具有两个或两个以上的字符。如果两个字符所组成的名称不唯一,则该名称将解析为最晚的一个匹配日期。例如,Ju解析为七月(July),而不是六月(June)。Chrome不支持"Ju"这种写法。
  6. 如果提供一个日期,该日期中所说明的星期数与根据此日期中其他部分所确定的星期数不相符,则此日期中的星期数将被忽略。例如,尽管 1996 年 11 月 9 日实际上是星期五,但Tuesday November 9 1996还是可以被接受并进行分析。但是结果的 Date 对象中包含的是Friday November 9 1996
  7. JavaScript处理所有的标准时区,以及协调通用时间 (UTC) 和格林威治标准时间 (GMT),例如:Thu, 07 Aug 2014 11:00:14 GMT。IE6 ~ IE8对UTC格式的支持程度非常低,IE9的支持也不全面。
  8. 用冒号分隔小时、分钟和秒,但所有这些内容并非都需要指定。10:10:1110:11:12都是有效的。
  9. 若使用的时钟是 24 小时计时的,那么将中午 12 点之后的时间指定为PM是错误的。例如,23:15 PM就是错误的。
  10. 包含无效日期的字符串是错误的。例如,一个包含两个年份或两个月份的字符串是错误的

在做项目的时候,谷歌浏览器,IE浏览器都能够正常把日期parse掉,但是火狐就是特别点,查了资料才发现都支持这种格式月这“/日/年”,而不是“月-日-年”,火狐会返回NaN。

快捷的替换方式,那就是直接“startDate.replace(/-/g, "/")”,比如:

var dt = '8-15-2013 15:33:40';
dt = dt.replace(/-/g, "/");

  这个是firfox的一个坑。

原文地址:https://www.cnblogs.com/yingcaiyi/p/4884903.html