首页 >web前端 >js教程 >JavaScript日期对象常用方法及应用

JavaScript日期对象常用方法及应用

黄舟
黄舟原创
2017-02-28 14:44:571555浏览

感觉我这个标题写的很大 

其实日期对象并不常用,应用好像也不多
但是我们有必要了解一些基本的用法

日期对象

Date日期对象是js原生的构造函数
不像数组、对象什么的,它没有对应的常量形式
创建一个日期对象很简单

var date = new Date();

Date()可以带参数(字符串),指定日期和时间像这样

console.log(new Date("2016/1/1"));

不带参数就是使用当前的日期和时间

Date()主要是用来获取当前的时间戳(距离1970年1月1日的毫秒数)
这个值可以通过日期对象的getTime方法获取

下面看一下日期对象常用的获取方法

  • getFullYear() 获取年份

  • getMonth() 获取月份

  • getDate() 获取天数

  • getDay() 获取星期

  • getHours() 获取小时

  • getMinutes() 获取分钟

  • getSeconds() 获取秒

  • getTime() 获取时间戳

要是想设置日期对象就把前面的get都改成set,感觉用不上
要注意的地方就是不要使用getYear(),因为它返回的是距离1900年的年差,没人用它
还有就是getMonth()方法返回月份是从零开始的,也就是0~11,代表1~12月
getDay()范围是0~6,0代表星期天
我们来练习一下封装一个函数打印当前日期信息
看一下表,今天是16年11月6日 18:45

function getCurrentDate(){    var date = new Date();
    console.log('年份:' + date.getFullYear(),                
    '月份:' + (date.getMonth() + 1),                
    '天数:' + date.getDate(),                
    '小时:' + date.getHours(),                
    '分钟:' + date.getMinutes(),                
    '秒数:' + date.getSeconds());
}
getCurrentDate();

控制台打印:

如果不使用new,直接调用 Date(),返回的是日期信息的字符串

Date还有一个要提的静态方法是parse(),与getTime()很像
w3c给出的定义:返回1970年1月1日午夜到指定日期(字符串)的毫秒数
这样用

应用

其实日期对象应用不多
无非是获取当前日期、性能测试
获取当前日期就直接实例化一个日期对象,然后调用方法就行

性能测试就是利用时间戳/时间截

function loop(){
    for(var i = 0; i < 1000; i++){
        console.log(1);
    }
}var timeStart = new Date().getTime();
loop();var timeEnd = new Date().getTime();
console.log(&#39;程序运行时间:&#39; + (timeEnd - timeStart));

这段代码就是我测试loop函数运行了多长时间

或者可以用我在JavaScript单线程底层原理中使用的方法

function loop(){
    for(var i = 0; i < 1000; i++){
        console.log(1);
    }
}var timeStart = +new Date();
loop();var timeEnd = +new Date();
console.log(&#39;程序运行时间:&#39; + (timeEnd - timeStart));

效果是一样的,不过不建议对日期类型使用强制类型转换
加号相当与把实例化的日期对象隐式转换转化为数字
也就是调用了Date对象重写的valueOf()

ES5中新增的日期对象静态方法now()就更方便了,直接获取当前时间戳

function loop(){
    for(var i = 0; i < 1000; i++){
        console.log(1);
    }
}var timeStart = Date.now();
loop();var timeEnd = Date.now();
console.log(&#39;程序运行时间:&#39; + (timeEnd - timeStart));

我们也可以为老版本浏览器写个polyfill(补充代码/衬垫代码)

if(!Date.now){    Date.now = function(){
        return new Date().getTime();
    }
}

 以上就是JavaScript日期对象常用方法及应用的内容,更多相关内容请关注PHP中文网(www.php.cn)!


声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn