您的浏览器过于古老 & 陈旧。为了更好的访问体验, 请 升级你的浏览器
Ready 发布于2014年08月08日 11:04

原创 JavaScript Date.parse() 函数详解

5361 次浏览 读完需要≈ 8 分钟

内容目录

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

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

语法

静态函数Date.parse()的语法如下:

Date.parse( dateString )

参数

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

返回值

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

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

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

注意:许多浏览器还为一些未在此处列出的其他格式提供了支持,但是由于跨浏览器兼容程度较低,因此此处不予列出。请尽量采用兼容格式的日期字符串。

示例&说明

// 下面以"上午12:00:00"结尾的日期,是在FireFox和Chrome中的显示结果
// 在IE浏览器中,均显示为"00:00:00"

//短日期格式最好是"月/日/年"格式
var time = Date.parse("7/8/2013");
var date = new Date( time );
document.writeln( date.toLocaleString() ); // 2013年7月8日 上午12:00:00

// May、18、1998的位置可以随意调换
time = Date.parse("May 18 1998");
var date = new Date( time );
document.writeln( date.toLocaleString() ); // 1998年5月18日 上午12:00:00

// Ju被看作July(7月) Chrome不支持
time = Date.parse("18 Ju 1998");
var date = new Date( time );
document.writeln( date.toLocaleString() ); // 1998年7月18日 上午12:00:00

// 年份必须大于等于70
time = Date.parse("18 June 70");
var date = new Date( time );
document.writeln( date.toLocaleString() ); // 1970年6月18日 上午12:00:00

// GMT格式
time = Date.parse("Thu, 07 Aug 2014 11:00:14 GMT");
var date = new Date( time );
document.writeln( date.toLocaleString() ); // 2014年8月7日 下午7:00:14

// UTC格式(之一) IE6 ~ IE8不支持
time = Date.parse("1997-07-16T19:20:30");
var date = new Date( time );
document.writeln( date.toLocaleString() ); // 1997年7月17日 上午3:20:30

// 带AM/PM(小时数不能大于12)
time = Date.parse("November 9 1996 3:15 PM");
var date = new Date( time );
document.writeln( date.toLocaleString() ); // 1996年11月9日 下午3:15:00

运行代码

  • CodePlayer技术交流群1
  • CodePlayer技术交流群2

0 条评论

撰写评论

打开导航菜单