JavaScript援用范例——“Date范例”的注重要点

Date 范例

ECMAScript 中的Date 范例运用自UTC(Coordinated Universal Time,国际谐和时候)1970 年1 月1 日半夜(零时)最先经由的毫秒数来保留日期。Date 范例保留的日期能够准确到1970 年1 月1 日之前或以后的185616年。

基础的三个要领

Date.parse()Date.UTC()Date.now()三个要领。

起首,Date.parse()要领吸收一个示意日期的字符串参数,然后尝试依据这个字符串返回响应日期的毫秒数。一般将区域设置为美国的浏览器都接收以下日期花样:

  • “月/日/年”,如6/13/2004;

  • “英文月名 日,年”,如January 12,2004;

  • “英文礼拜 英文月名 日 年 时:分:秒 时区”,如Tue May 25 2004 00:00:00 GMT-0700。

  • ISO 8601 扩大花样 YYYY-MM-DDTHH:mm:ss.sssZ,如2004-05-25T00:00:00。只要兼容ECMAScript 5 的完成支撑这类花样。

比方,要为2004年5月25日建立一个日期对象,能够运用下面的代码:

var date = new Date(Date.parse("May 25 2004"));
console.log(date); //Tue May 25 2004 00:00:00 GMT+0800 (HKT)

也能够省略Date.parse()如:

var date = new Date("May 25 2004");
console.log(date); //Tue May 25 2004 00:00:00 GMT+0800 (HKT)

var date = new Date("11/16/2015");
console.log(date); //Mon Nov 16 2015 00:00:00 GMT+0800 (HKT)

var date = new Date("November 16, 2015");
console.log(date); //Mon Nov 16 2015 00:00:00 GMT+0800 (HKT)

其次,Date.UTC()要领一样也返回示意日期的毫秒数,该要领的参数分别是年份、基于0的月份、月中的哪一天、24小时制的小时数、分钟、秒以及毫秒数。假如没有供应月中的天数,则默以为1;假如省略其他参数,默以为0.如:

var date = new Date(Date.UTC(2015, 10, 16));
document.write(date); //Mon Nov 16 2015 08:00:00 GMT+0800 (CST)

也能够缩写成:

var date = new Date(2015, 10, 16, 10,10,10);
console.log(date);//Mon Nov 16 2015 10:10:10 GMT+0800 (CST)

末了,Date.now()要领,返回示意挪用这个要领时的日期和时候的毫秒数。如:

var date = new Date(Date.now());
console.log(date); //Mon Nov 16 2015 10:48:02 GMT+0800 (CST)

能够用这个要领来跟踪代码的事情,如:

var start = new Date(Date.now());
for (var i = 0; i < 100; i++){
    for (var j = 0; j < 100; j++){
        document.write("result is: " + (i + j) + "<br/>");
    }
}
var stop = new Date(Date.now());
document.write("<br/>");
document.write((stop - start) + "<br/>" + start + "<br/>" + stop);

继续的要领

Date 范例重写了toLocaleString()toString()valueOf()要领。toLocaleString()要领会根据与浏览器设置的区域相适应的花样返回日期和时候。toString()要领则一般返回带有时区信息的日期和时候。(toLocaleString()toString()的输出因浏览器差别而有所差别)如:

var date = new Date(Date.now());
document.write(date.toLocaleString()); 
document.write(date.toString()); 
document.write(date.valueOf());
//2015年11月16日 GMT+8上午11:10:09
//Mon Nov 16 2015 11:10:09 GMT+0800 (CST)
//1447643409908

valueOf()要领可用比较操作符来比较日期值。

var start = new Date(Date.parse("May 24,2015"));
var stop = new Date(Date.parse("Nov 16,2015"));
document.write(stop.valueOf() > start.valueOf()); //true

日期花样化要领

Date 范例另有一些特地用于将日期花样化为字符串的要领,这些要领以下:

  • toDateString()(礼拜、月、日和年)

  • toTimeString()(时、分、秒和时区

  • toLocaleDateString()(礼拜、月、日和年)

  • toLocaleTimeString()(时、分、秒)

  • toUTCString()(UTC日期)

  • toGMTString()(不引荐)

举个例子:

var date = new Date(Date.now());
document.write(date.toDateString()); //Mon Nov 16 2015
document.write(date.toTimeString()); //11:32:25 GMT+0800 (CST)
document.write(date.toLocaleDateString()); //2015年11月16日
document.write(date.toLocaleTimeString()); //GMT+8上午11:33:16
document.write(date.toUTCString()); //Mon, 16 Nov 2015 03:33:37 GMT
document.write(date.toGMTString()); //Mon, 16 Nov 2015 03:33:52 GMT

日期和时候组件要领

下面的要领都是直接获得和设置日期值中特定部份的要领。别的,UTC 日期指得是在没有时区误差的情况下(将日期转换为GMT 时候)的日期值。

完全数据见w3school-Date对象要领

在举个例子好了,以秒为距离更新显现当前时候:

var newP = document.createElement("p");
    var newP_text = document.createTextNode("");
    document.body.appendChild(newP);
    newP.appendChild(newP_text);
    setInterval(function(){
    var time = new Date(Date.now());
    var hours = time.getHours();
    var minutes = time.getMinutes();
    var seconds = time.getSeconds();
    if (seconds < 10){
        seconds = "0" + seconds;
    }
    if (hours < 10){
        hours = "0" + hours;
    }
    if (minutes < 10){
        minutes = "0" + minutes;
    }
    var current = "如今时候是:" + hours + "时" + minutes + "分" + seconds + "秒";
    newP.firstChild.nodeValue = current;
    }, 1000)
    
    //如今时候是:12时06分53秒
    原文作者:JS菌
    原文地址: https://segmentfault.com/a/1190000004000562
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞