本帖最后由 hechengjin 于 2016-6-16 17:31 编辑
CMAScript提供了Date类型来处理时间和日期。 Date类型使用UTC (Coordinated Universal Time,国际协调时间[又称世界统一时间]) 1970年1月1日午夜(零时)开始经过的毫秒来保存日期。在使用这种数据存储格式的条件下,Date类型保存的日期能够精确到1970年1月1日之前或之后的285616年。
ECMAScript提供了两个方法,Date.parse()和Date.UTC()。Date.parse()方法接收一个表示日期的字符串参数,然后尝试根据这个字符串返回相应的毫秒数。ECMA-262没有定义Date.parse()应该支持哪种日期格式,因此方法的行为因实现而异,因地区而异。默认通常接收的日期格式如下: 1.'月/日/年',如6/13/2011; alert(Date.parse('6/13/2011')); //1307894400000 2.'英文月名 日, 年',如 May 25, 2004; 3.'英文星期几 英文月名 日 年 时:分:秒 时区',如 Tue May 25 2004 00:00:00 GMT-070 如果Date.parse()没有传入或者不是标准的日期格式,那么就会返回NaN。 alert(Date.parse()); //NaN
alert(new Date(1466059693000)); var box = new Date(1466059693000); //把毫秒数转换成看的懂的时间 alert(box) //Thu Jun 16 2016 14:48:13 GMT+0800 (中国标准时间) alert(box.toLocaleString()) //2016/6/16 下午2:48:13 alert(box.toString()) //Thu Jun 16 2016 14:48:13 GMT+0800 (中国标准时间) alert(box.valueOf()) //1466059693000
alert(box.toDateString()); //Thu Jun 16 2016 //以特定的格式显示星期几、月、日和年 alert(box.toTimeString()); //14:48:13 GMT+0800 (中国标准时间) //以特定的格式显示时、分、秒和时区 alert(box.toLocaleDateString());//2016/6/16 //以特定地区格式显示星期几、月、日和年 alert(box.toLocaleTimeString()); //下午2:48:13 //以特定地区格式显示时、分、秒和时区 alert(box.toUTCString());//Thu, 16 Jun 2016 06:48:13 GMT //以特定的格式显示完整的UTC日期。
//转为标准时间
var box = new Date(1466035200000); //直接放日期的毫秒数也是可以的。
alert(box.toUTCString()); //Thu, 16 Jun 2016 00:00:00 GMT
alert(box.toGMTString()); //Thu, 16 Jun 2016 00:00:00 GMT
alert(box.toLocaleString()) //2016/6/16 上午8:00:00 //即 UTC时间0点,为本地时间8点
去掉时区影响
var d = new Date(1466035200000); //直接放日期的毫秒数也是可以的。
var localTime = d.getTime();
var localOffset=d.getTimezoneOffset()*60000; //获得当地时间偏移的毫秒数
var utc = localTime + localOffset; //utc即GMT时间
var offset =8; //以北京时间为例,东8区
var beijin = utc + (3600000*offset);
var nd = new Date(beijin);
alert(nd.toLocaleString()) //2016/6/16 上午8:00:00
|