Discuz! Board

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2792|回复: 0
打印 上一主题 下一主题

日期时间

[复制链接]

388

主题

602

帖子

2218

积分

金牌会员

Rank: 6Rank: 6

积分
2218
跳转到指定楼层
楼主
发表于 2016-6-16 15:02:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 hechengjin 于 2016-6-16 17:31 编辑

CMAScript提供了Date类型来处理时间和日期。
Date类型使用UTC (Coordinated Universal Time,国际协调时间[又称世界统一时间]) 197011日午夜(零时)开始经过的毫秒来保存日期。在使用这种数据存储格式的条件下,Date类型保存的日期能够精确到197011日之前或之后的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

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|firemail ( 粤ICP备15085507号-1 )

GMT+8, 2024-11-22 23:21 , Processed in 0.057617 second(s), 20 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表