资讯专栏INFORMATION COLUMN

JavaScript引用类型——“Date类型”的注意要点

brianway / 755人阅读

摘要:类型中的类型使用自,国际协调时间年月日午夜零时开始经过的毫秒数来保存日期。类型保存的日期能够精确到年月日之前或之后的年。和的输出因浏览器不同而有所差异如年月日上午方法可用比较操作符来比较日期值。

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) + "
"); } } var stop = new Date(Date.now()); document.write("
"); document.write((stop - start) + "
" + start + "
" + 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秒

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/86211.html

相关文章

  • Javascript变量注意要点

    摘要:如很明显可以看到,实际上是函数的局部变量。简单的说就是,复制给参数,在函数内部是局部变量,无论怎么变化,都不影响的变化。 ECMAScript 变量可能包含两种不同数据类型的值:基本类型值和引用类型值。 基本类型和引用类型的值 基本类型值(String,Number,Boolean,Null,Undefined)指的是简单的数据段;引用类型值(保存在内存中的对象)指的是那些可能由多个值...

    booster 评论0 收藏0
  • Javascript引用类型——“Object类型注意要点

    摘要:类型关于引用类型的概念引用类型引用类型的值对象是引用类型的一个实例对象是某个特定引用类型的实例新对象用操作符后跟一个构造函数来创建的如代码这行代码创建了引用类型的一个新实例,然后把该实例保存在了变量中。使用的构造函数是。 Object 类型 关于引用类型的概念: 引用类型:引用类型的值(对象)是引用类型的一个实例; 对象:是某个特定引用类型的实例; 新对象:用new 操作符后跟一个构...

    Codeing_ls 评论0 收藏0
  • JavaScript引用类型——“单体内置对象”注意要点

    摘要:单体内置对象单体内置对象就是开发人员不必显式地实例化内置对象,因为他们已经实例化了。前面的章节讨论过了大多数内置对象,还定义了两个单体内置对象和。 单体内置对象 单体内置对象就是开发人员不必显式地实例化内置对象,因为他们已经实例化了。前面的章节讨论过了大多数内置对象,ECMA-262 还定义了两个单体内置对象:Global 和Math。 Global 对象 所有在全局作用域中定义的属性...

    xushaojieaaa 评论0 收藏0
  • JavaScript 代码优化和部署——“可维护性”注意要点

    摘要:代码约定可读性以下地方需要进行注释函数和方法注释参数代表什么,是否有返回值大段代码描述任务的注释复杂的算法变量和函数命名变量用名词函数名用动词开头等返回布尔值类型的函数用等合乎逻辑不用担心太长变量类型透明化方法一初始化,如下推荐方法二匈牙利 代码约定 可读性 以下地方需要进行注释: 函数和方法:注释参数代表什么,是否有返回值; 大段代码:描述任务的注释; 复杂的算法; Hack 变...

    scwang90 评论0 收藏0
  • JavaScript引用类型——“Function类型注意要点

    摘要:类型每个函数都是类型的实例。如以上代码可行,是因为在代码开始值钱,解析器就已经通过一个名为函数声明提升的过程,读取并将函数声明添加到执行环境中去。也可同时使用函数声明和函数表达式,但在浏览器中会出错。 Function 类型 每个函数都是Function 类型的实例。函数名实际上就是一个指向函数对象的指针,不会与某个函数绑定。 函数声明方式创建Function,语法如下: functi...

    fantix 评论0 收藏0

发表评论

0条评论

brianway

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<