ECMAScript5添加了Data.now()方法,返回表示调用这个方法时的日期和时间的毫秒数。IE9才开始支持,不过我们可以通过 + 操作符来把Data对象转换成字符串,得到同样的值。 复制代码 代码如下: var d1 = Date.now(); var d2 = + new Date(); console.log(d1); //1379393793104 console.log(d2); //1379393793104
JavaScript中的日期转换非常的诡异,不仅会因为参数不同而有不同的解释结果,而且在各个浏览器中的表现也有所不同,如下: 复制代码 代码如下: var d1 = new Date("2012/03/13"); var d2 = new Date("2012-03-13"); var d3 = new Date("2012-3-13"); console.log(d1); //Tue Mar 13 2012 00:00:00 GMT+0800 (中国标准时间) console.log(d2); //Tue Mar 13 2012 08:00:00 GMT+0800 (中国标准时间) console.log(d3); //Tue Mar 13 2012 00:00:00 GMT+0800 (中国标准时间)
在不同浏览器中的表现参考:http://dygraphs.com/date-formats.html 为了避免这些问题,请遵照下面的建议: 1.坚持使用 ”YYYY/MM/DD” 的日期字符串格式 2.避免使用带有连字号的日期字符串格式”YYYY-MM-DD” 3.要指定四位数的年份 4.Chrome浏览器的比其他浏览器能接受更多的日期字符串,所以如果在Chrome浏览器没有问题,不代表其他浏览器没有问题 更多信息可以参考:JavaScript and Dates, What a Mess!和 SO中的讨论 get系列方法 getDate() 从 Date 对象返回一个月中的某一天 (1 ~ 31)。 getDay() 从 Date 对象返回一周中的某一天 (0 ~ 6)。 getMonth() 从 Date 对象返回月份 (0 ~ 11)。 getFullYear() 从 Date 对象以四位数字返回年份。注意不要使用getYear()。 getHours() 返回 Date 对象的小时 (0 ~ 23)。 getMinutes() 返回 Date 对象的分钟 (0 ~ 59)。 getSeconds() 返回 Date 对象的秒数 (0 ~ 59)。 getMilliseconds() 返回 Date 对象的毫秒(0 ~ 999)。 getTime() 返回 1970 年 1 月 1 日至今的毫秒数。 getTimezoneOffset() 返回本地时间与格林威治标准时间 (GMT) 的分钟差。 getUTCDate() 根据世界时从 Date 对象返回月中的一天 (1 ~ 31)。 getUTCDay() 根据世界时从 Date 对象返回周中的一天 (0 ~ 6)。 getUTCMonth() 根据世界时从 Date 对象返回月份 (0 ~ 11)。 getUTCFullYear() 根据世界时从 Date 对象返回四位数的年份。 getUTCHours() 根据世界时返回 Date 对象的小时 (0 ~ 23)。 getUTCMinutes() 根据世界时返回 Date 对象的分钟 (0 ~ 59)。 getUTCSeconds() 根据世界时返回 Date 对象的秒钟 (0 ~ 59)。 getUTCMilliseconds() 根据世界时返回 Date 对象的毫秒(0 ~ 999)。 set系列方法 setDate() 设置 Date 对象中月的某一天 (1 ~ 31)。 setMonth() 设置 Date 对象中月份 (0 ~ 11)。 setFullYear() 设置 Date 对象中的年份(四位数字)。注意不要使用setYear()方法。 setHours() 设置 Date 对象中的小时 (0 ~ 23)。 setMinutes() 设置 Date 对象中的分钟 (0 ~ 59)。 setSeconds() 设置 Date 对象中的秒钟 (0 ~ 59)。 setMilliseconds() 设置 Date 对象中的毫秒 (0 ~ 999)。 setTime() 以毫秒设置 Date 对象。 setUTCDate() 根据世界时设置 Date 对象中月份的一天 (1 ~ 31)。 setUTCMonth() 根据世界时设置 Date 对象中的月份 (0 ~ 11)。 setUTCFullYear() 根据世界时设置 Date 对象中的年份(四位数字)。 setUTCHours() 根据世界时设置 Date 对象中的小时 (0 ~ 23)。 setUTCMinutes() 根据世界时设置 Date 对象中的分钟 (0 ~ 59)。 setUTCSeconds() 根据世界时设置 Date 对象中的秒钟 (0 ~ 59)。 setUTCMilliseconds() 根据世界时设置 Date 对象中的毫秒 (0 ~ 999)。 toString系列方法 toString() 把 Date 对象转换为字符串,toString()总是返回一个用美式英语表达的字符串。 toTimeString() 把 Date 对象的时间部分转换为字符串。 toDateString() 把 Date 对象的日期部分转换为字符串。 toUTCString() 根据世界时,把 Date 对象转换为字符串。 toLocaleString() 根据本地时间格式,把 Date 对象转换为字符串。 toLocaleTimeString() 根据本地时间格式,把 Date 对象的时间部分转换为字符串。 toLocaleDateString() 根据本地时间格式,把 Date 对象的日期部分转换为字符串。 复制代码 代码如下: var d = new Date(); console.log(d); //Tue Sep 17 2013 13:37:04 GMT+0800 (中国标准时间) console.log(d.toString()); //Tue Sep 17 2013 13:37:04 GMT+0800 (中国标准时间) console.log(d.toTimeString()); //13:37:04 GMT+0800 (中国标准时间) console.log(d.toDateString() ); //Tue Sep 17 2013 console.log(d.toUTCString()); //Tue, 17 Sep 2013 05:37:04 GMT console.log(d.toLocaleString()); //2013年9月17日 下午1:37:04 console.log(d.toLocaleTimeString()); //下午1:37:04 console.log(d.toLocaleDateString()); //2013年9月17日
注意toLocaleString()系列方法可以接收参数,来确定按照什么习惯来输出,参考:MDN 复制代码 代码如下: var d = new Date(); console.log(d.toLocaleString("ko-KR")); //2013년 9월 17일 오후 1:48:24