zoukankan      html  css  js  c++  java
  • javascript Date对象

    使用了JavaScript这么久了,还没有好好整理过,现在开始整理一下知识,巩固一下。

    先从Date对象开始。

    Date对象用于处理时间,既然是一个对象,我们就可以使用new这个关键词来得到这个对象,然后就可以使用Date对象本身所提供的方法。得到Date对象可以使用如下的方法

        1,var objDate=new Date();//Date 对象自动使用当前的日期和时间作为其初始值。

        2,  var objDate=new Date(dateVal); //将给定的毫秒数转换为使用的时间

        3,  var objDate=new Date((yearmonthdate[hours[minutes[seconds[,ms]]]]));//指定具体的日期

        较常用的是第一种方式和第三种方式。

        下面来看一下上面所使用到的参数     

           dateVal

                 必选项。如果是数字值,dateVal 表示指定日期与 1970 年 1 月 1 日午夜间全球标准时间 的毫秒数。如果是字符串,则 dateVal 按照 parse 方法中的规则进行解析。dateVal 参数也可以是从某些ActiveX(R) 对象返回的 VT_DATE 值。

            year

                 必选项。完整的年份,比如,1976(而不是 76)。

            month

                 必选项。表示的月份,是从 0 到 11 之间的整数( 1 月至 12 月)。

            date

                 必选项。表示日期,是从 1 到 31 之间的整数。

            hours

                  可选项。 如果提供了 minutes 则必须给出。表示小时,是从 0 到 23 的整数(午夜到 11pm)。

           minutes

                  可选项。 如果提供了 seconds 则必须给出。表示分钟,是从 0 到 59 的整数。

           seconds

                  可选项。 如果提供了 milliseconds 则必须给出。表示秒钟,是从 0 到 59 的整数。

            ms

                   可选项。 表示毫秒,是从 0 到 999 的整数。

    已经获得了时间的对象,我们就可以使用这个对象,例如

    var date=new Date();
    document.write(date);

    上面代码得到是本机的时间,时间的现实为 Mon Mar 09 2015 15:43:04 GMT+0800 (中国标准时间),很明显这样的显示格式不是我们想要的,所以我们就要用到Date这个对象的方法,来制定自己的时间显示格式。

    然而Date这个对象提供了很多的方法,常用的得到时间方法也就getYear(),getFullYear(),getMonth(),getDate(),getDay(),getHours(),getMinutes(),getSeconds(),getTime()这么几个,下面简单介绍下这几个方法

    getYear() 返回Date对象中本地的年份,这个方法已经过时,之所以提供这个方法,是为了保持向后的兼容性。请改用 getFullYear 方法。对于1900-1999这段时间而言,返回的年份值是一个两位数字的整数,它代表了所保存的年份与 1900 年之间的差距。而对于其它的年份,返回值是一个四位的整数。例如,1996 年的返回值是 96,而 1825和 2025 年的返回值则相应地为 1825 和 2025。

    注意 对于 JScript 1.0 版,getYear 返回的值始终为 Date 对象中的年份与 1900 年之间的差距。例如,1899 年的返回值是 -1, 而 2000 年的返回值是 100。 

    var date = new Date();
    document.write(date.getYear());

    显示的结果是115,而不是我们所期待的2015

    getFullYear()  要获取用全球标准时间 (UTC)表示的年份值,请使用 getUTCFullYear 方法。getFullYear 方法以绝对数字的形式返回年份值。例如,1976 年的返回值就是1976。这样可以避免出现 2000 年问 题,从而不会将 2000 年1月1日以后的日期与 1900 年1月1日以后的日期混淆起来。

    var date = new Date();
    document.write(date.getFullYear());

    显示的结果就是我们所期待的2015

    getMonth() 得到本地时间表中的月份值,getMonth方法返回一个处于 0 到 11 之间的整数,它代表 Date 对象中的月份值。这个整数并不等于按照惯例来表示月份的数字,而是要比按惯例表示的值小 1。如果一 个 Date 对象中保存的时间值是 "Jan 5, 2015 08:47:00",那么 getMonth()方法就会返回 0。

     var date = new Date();
       document.write(date.getMonth() + "</br>");
       document.write(date.getUTCMonth() + "</br>");
       var setDate = new Date("Jan 5, 2015 08:47:00");
       document.write(setDate.getMonth() + "</br>");
    View Code

    上面的例子的显示的结果是2  2  0,所以要显示正确的月份要相应的加 1

    getDate()  获取当前时间月份中的几号,返回值是一个处于 1 到 31 之间的整数,它代表了相应的 Date 对象中的日期值。

    var date = new Date();
    document.write(date.getDate()+ "</br>");

    运行的结果是 9

    getDay() 表示当前时间日期中的周几,getDay方法所返回的值是一个处于 0 到 6 之间的整数,它代表了一周中的某一天

    getDay()返回值
    对应的星期值

    返回值 对应值
    0 星期日
    1 星期一
    2 星期二
    3 星期三
    4 星期四
    5 星期五
    6 星期六

    getHours() 方法返回一个处于 0 到 23 之间的整数,这个值表示从午夜开始计算的小时数。在下面两种情况下此方法的返回值是 0:时间在 1:00:00 am 之前,或者在创建 Date 对象的时候没有将时间保存在该对 象中。而要确定究竟是哪种情况,唯一的方法就是进一步检查分钟和秒钟值是否也是 0。如果这两个值都是 0,那就几乎可以确定是没有将时间值保存到 Date 对象中。

    getMinutes() 方法返回一个处于 0 到 59 之间的整数,返回值就等于保存在 Date 对象中的分钟值。在下面两种情况下返回值为 0:在时钟整点之后经过的时间少于一分钟,或者是在创建 Date 对象的时候没有将时间值保存到该对象中。而要确定究竟是哪种情况,唯一的方法是同时检查小时和秒钟值是否也是 0。如果这两个值都是 0,那就几乎可以确定是没有将时间值保存到该 Date 对象中。

    getSeconds()  方法返回一个处于 0 到 59 之间的整数,它表示了相应的 Date 对象中的秒钟值。在下面两种情况下,返回值为 0。第一种情况是在当前的一分钟中所经过的时间少于一秒。另外一种情况是在创建 Date 对象时没有将时间值保存到该对象中。而为了确定究竟属于哪种情况,唯一的方法是同时检查小时和分钟值是否也都是 0。如果这两个值都是 0,那就几乎可以确定是没有将时间值保存到 Date 对象中。

    getTime()    方法返回一个整数值,这个整数代表了从 1970 年 1 月 1 日开始计算到 Date 对象中的时间之间的毫秒数。日期的范围大约是 1970 年 1 月 1 日午夜的前后各 285,616 年。负数代表 1970 年之前的日期。

    至于设置时间,我们可以使用 Date 对象提供的各种set方法,但是最简单的则是在 new 对象的时候我们就可以初始化时间,例如:

               var date = new Date("2016");
                document.write(date.getFullYear()+ "</br>");
                var setDate = new Date();
                setDate.setFullYear(2016);
                document.write(setDate.getFullYear() + "</br>");

    得到的结果都是相同的,都是2016,只是写入的数据不同,new Date()填写的是字符串setFullYear()则是相应的整数。

    下面给个结合数组显示当前日期的时钟

    复制代码

    复制代码

     function showNowDate()
            {
                var date = new Date();
                var year = date.getFullYear();
                var month = date.getMonth();
                var day = date.getDate();
                var isMonth = new Array("1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月");
                var isDay = new Array("星期日","星期一","星期二","星期三","星期四","星期五","星期六");
                document.write("今天日期是:"+year+"年"+isMonth[month]+day+"日"+" "+isDay[date.getDay()]);
            }

    复制代码

    复制代码

    显示当前具体时间的时钟

    复制代码

    复制代码

    function showTimeMethod()
    {
    var date = new Date();
    var hour = date.getHours();
    var minuts = date.getMinutes();
    var seconds = date.getSeconds();
    document.getElementById("showTime").value = hour + ":" + minuts + ":" + seconds;
    setTimeout("showTimeMethod()",100);
    }

    复制代码

  • 相关阅读:
    SPOJ SAMER08A
    SPOJ TRAFFICN
    CS Academy Set Subtraction
    CS Academy Bad Triplet
    CF Round 432 C. Five Dimensional Points
    CF Round 432 B. Arpa and an exam about geometry
    SPOJ INVCNT
    CS Academy Palindromic Tree
    身体训练
    简单瞎搞题
  • 原文地址:https://www.cnblogs.com/yuanking/p/4330712.html
Copyright © 2011-2022 走看看