第5章 Date类型

ECMAScipt中的Date类型是早期Java中的java.util.Date类基础上构建的。为此,Date类型使用自UTC( Coordinated Universal Time 国际协调时间)
1970年1月1日午夜(零时)开始经过的毫秒数来保存日期。在使用这种数据存储格式的条件下,Date类型保存的日期能够精确到1970年1月1日之前或之后的285616年。

创建一个日期对象

var now = new Date();

在调用Date构造函数而不传递参数的情况下,新创建的对象自动获得当前日期和时间

Date.parse() 方法接收一个表示日期的字符串参数,然后尝试根据这个字符串返回相应日期的毫秒数
Date.UTC() 方法同样也返回表示日期的毫秒数,但它与Date.parse()在构建值时使用不同的信息

ECMAScript 5添加了Data.now()方法,返回表示调用这个方法时的日期和时间的毫秒数

//取得开始时间

var start = Date.now();

//取得停止时间

var stop = Date.now();
result = stop - start;

由于部分浏览器不支持Data.now()方法,故如下兼容:

//取得开始时间

var start = +new Date();

//取得停止时间

var stop = +new Date();
result = stop - start;

继承的方法:
Date类型重写了

toLocaleString(), toString(), valueOf();

其中toLocaleString(), toString()在不同浏览器下返回的日期和时间格式相差太大,valueOf()方法不返回字符串,返回日期的毫秒数
因此,这三个在调试时候作用较大,而在显示日期和时间时没有什么价值;

日期格式化方法:
Date类型还有一些专门用于将日期格式化为字符串的方法

toDateString()------new Date(1465920000000).toDateString() ==> "Wed Jun 15 2016"
toTimeString()------new Date(1465920000000).toTimeString() ==> "00:00:00 GMT+0800 (中国标准时间)"
toLocaleDateString()------new Date(1465920000000).toLocaleDateString() ==> "2016/6/15"
toLocaleTimeString()------new Date(1465920000000).toLocaleTimeString() ==> "上午12:00:00"

不过,以上这些字符串格式方法的输出也是因浏览器而异的,所以不建议使用

日期/时间组件方法
UTC日期指的是在没有时区偏差的情况下(将日期转换为GMT时间)的日期值;

以下只整理出常用值

getTime() -- 返回表示日期的毫秒数
new Date('2017/12/13').getTime() ==> 1513094400000;

setTime() -- 以毫秒数设置日期,会改变整个日期

getFullYear() -- 取得四位数的年份
new Date('2017/12/13').getFullYear() ==> 2017   

getMonth() -- 取得日期中的月份,0表示1月,11表示十二月

setMonth() -- 设置日期中的月份,传入的月份值必须大于0,超过11则增加年份

getDate() -- 返回日期月份中的天数( 1到31 )

setDate() -- 设置日期月份中的天数。如果传入的值超过了该月中应有的天数,则增加月份;
var aa = new Date('2016/12/13')
aa.setDate(1)
aa.toLocaleDateString() ==> "2016/12/1"

aa.setDate(40) 
aa.toLocaleDateString() ==> "2017/1/9"

getDay() -- 返回日期中的星期几( 0 表示星期日 6 表示星期六)

getHours() -- 返回日期中的小时数

setHours() -- 设置日期中的小时数,传入的值超过23,则增加月份中的天数

getMinutes() -- 返回日期中的分钟数

setMinutes() -- 设置日期中的分钟数,超过59则增加小时数

getSeconds() -- 获取日期中的秒数

setSeconds() -- 设置日期中的秒数,传入的值超过59,则增加分钟数

getMilliseconds() -- 返回毫秒数

setMilliseconds() -- 设置毫秒数
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 8,489评论 0 4
  • 本章内容 使用对象 创建并操作数组 理解基本的 JavaScript 类型 使用基本类型和基本包装类型 引用类型的...
    闷油瓶小张阅读 3,945评论 0 0
  • {纯属虚构,道听途说}【以下故事来自无秘诉说,感谢告白者d】 别再恋上人,养只猫,养只狗,不恋上人,养只宠物至少可...
    幻夜一瞳阅读 4,359评论 0 2
  • 上周五羊羊做了分享,谈到自己是个喜欢折腾的人,从本科做线下的课程活动,硕士去报名摄影专业,再到后来的去多家创业公司...
    Mr邢阅读 1,436评论 0 0
  • 年少的你总是会不懂事,和家人闹情绪。他们是你烦恼的发泄口,释放完了,还是日复一日的行走。 你的叛逆睡一觉会消散,因...
    垂緌xiaocai阅读 1,482评论 0 2