JavaScript引用类型--Date类型

Date类型使用自UTC(国际协调时间)1970年1月1日零时 开始经过的毫秒数来保存日期。

创建 Date 对象

有4种方法:
var d = new Date();
var d = new Date(milliseconds);
var d = new Date(dateString);
var d = new Date(year, month, day, hours, minutes, seconds, milliseconds);

//1.构造函数没有参数,则返回当前日期的Date对象
var D = new Date()
//2.构造函数的参数为日期的毫秒数,返回距离1970年1月1日经过该毫秒后对应的日期
var D = new Date(1541905200000)
//3.构造函数的参数为对应的日期字符串,返回对应的日期对象,其中年,月,日是必须的,时分秒可选
var D = new Date('2018-11-11')
//4.构造函数的参数分别为年份,基于0的月份(0-11),月中的哪一天(1-31),小时数(0-23),分钟(0-59),秒(0-59)以及毫秒(0-999)。
//在这些参数中,只有前两个参数(年和月)是必需的。如果没有提供月中的天数,则假设天数为1,如果省略其他参数,则统统假设为0
var D = new Date(2018, 10, 11);

获取日期的毫秒数

根据特定日期和时间创建日期对象,必须传入该日期的毫秒数,js提供原生两个方法:Date.parse() 和Date.UTC();

Date.parse() 该方法接收一个表示日期的字符串参数,能接受多种日期格式

  • “月/日/年”(”11/11/2018”)
  • “英文月名 日,年”(”Nov 11,2018”)
  • “英文星期几英文月名日年时:分:秒时区”(”Sun Nov 11 2018 11:00:00 GMT+0800”)
  • ISO8601扩展格式YYYY-MM-DDTHH:mm:ss.sssZ(”2018-11-11T11:00:00”)。只有兼容ECMAScript 5的实现支持这种格式

Date.UTC() 该方法的参数指定日期和时间,它们都是 UTC 时间,处于 GMT 时区。指定的 UTC 时间将转换成毫秒的形式。Date.UTC(year,month,day,hours,minutes,seconds,ms)

var d = Date.parse("2018-11-11T11:00:00");
console.log(d) //1541905200000
var d = Date.UTC(2018,10,11,11) //1541934000000  转换时间戳 2018/11/11 19:0:0 【北京时区是东八区,领先UTC八个小时】
var  now = new Date(d); // Sun Nov 11 2018 19:00:00 GMT+0800 (中国标准时间)

Date.now() 该方法返回当前日期和时间的毫秒数,IE9以下不支持,在不支持此方法的情况下,可以使用+操作符把Date对象转换成字符串(例如 + new Date());
对已知的日期对象date,获取它的毫秒数,一般用 date.getTime()

//这三种方法都是获取当前日期和时间的毫秒数
var d = Date.now();
var d = new Date.getTime();
var d = +new Date();

获取当前时间可以用在监测代码执行多长时间,如下:

//取得开始时间
var start = Date.now();
//调用函数
doSomething();
//取得停止时间
var stop = Date.now();
result = stop - start;

Date对象的常用方法:

var  date = new Date("Sun Nov 11 2018 11:10:55");
var year =date.getFullYear();   // 返回date对象的4位数年份,如“2018”
var month = date.getMonth();    // 返回date对象的月份(0-11)
var day = date.getDate();       //返回date对象的月份中的天数(1-31)
var week = date.getDay();       //返回date对象中星期的星期几(0-6)
var hours = date.getHours();    //返回date对象的小时(0-23)
var minutes = date.getMinutes();    //返回date对象的分钟(0-59)
var seconds = date.getSeconds();    //返回date对象的秒数(0-59)
var time = date.getTime();  //返回date对象的毫秒数
var time2 = date.valueOf(); //返回date对象的原始值,以毫秒表示。返回值和方法 Date.getTime() 返回相等

//还有一些相对应的设置方法
/*setFullYear() 设置日期的年份。传入的年份值必须是4位数字(如2018而非仅18)
setMonth()  设置日期的月份。传入的月份值必须大于0,超过11则增加年份
setDate()   设置日期月份中的天数。如果传入的值超过了该月中应有的天数,则增加月份
setHours()  设置日期中的小时数。传入的值超过了23则增加月份中的天数
setMinutes()    设置日期中的分钟数。传入的值超过59则增加小时数
setSeconds()    设置日期中的秒数。传入的值超过了59会增加分钟数
SetTime()       以毫秒数设置日期,会改变整个日期*/

继承的方法

  • toString() 把 Date 对象转换为字符串。
  • toLocaleString() 据本地时间格式,把 Date 对象转换为字符串。
  • valueOf() 返回 Date 对象日期时间的毫秒数,方便使用比较操作符来比较日期值。

toString()和toLocaleString()这两个方法在不用的浏览器中返回的格式不统一,但是这个差别仅在调试代码时比较有用,在显示日期和时间时明月什么价值。

日期格式化方法

  • toDateString()——以特定于实现的格式显示星期几、月、日和年;
  • toTimeString()——以特定于实现的格式显示时、分、秒和时区;
  • toLocaleDateString()——以特定于地区的格式显示星期几、月、日和年;
  • toLocaleTimeString()——以特定于实现的格式显示时、分、秒;
  • toUTCString()——以特定于实现的格式完整的UTC日期。

猜你喜欢

转载自blog.csdn.net/eva_feng/article/details/80996684