JavaScript的Date时间数据类型整理

本文详细介绍了JavaScript中的Date数据类型,包括如何创建Date对象、获取和设置日期时间组件的方法,以及各种格式化日期的函数。通过实例展示了Date.parse()、Date.UTC()、Date.now()等方法的使用,同时提醒了Date.parse()的区域依赖性问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文主要整理了js的Date(日期)类型数据得一些用法,也算是对自己学习的一个总结。

  1. Date():返回当前时间的字符串(基于本地时区),不管传入什么参数,返回的只是一个单纯的字符串而已,并没有getDay()、getMonth()等方法
    Date();
    Date(666);
    Date('ppp');
    //Sun May 08 2016 14:35:59 GMT+0800 (中国标准时间)
     
  2. new Date():根据参数来返回对应的值,无参数的时候,返回当前时间的字符串形式(一个日期对象),有getDay()等方法
    //1.不传参数:
    new Date();//返回当前时间(基于本地时区):Sun May 08 2016 15:18:03 GMT+0800
    //2.传入时间的毫秒数,可以使用Date.parse()和Date.UTC()来获得自定义时间的毫秒
    
    数
    new Date(Date.parse("12/13/2020"));//返回Sun Dec 13 2020 00:00:00 GMT+0800
    new Date(Date.UTC(2020,11,13);//返回GMT时间Sun Dec 13 2020 08:00:00 GMT+0800
    //3.直接传入日期:
    new Date(2016,0);//基于本地时区2016年1月1日零时
    new Date(2016,5,8,13,42,26);//基于本地时区2016年6月8号13时42分26秒
     
  3. 常用的一些方法:
  • Date.parse()和Date.UTC():返回传入的时间对应的毫秒数(从1970年1月1日零时算起)
    Date.parse("12/13/2020");//返回1607788800000
    Date.UTC(2020,11,13,0,0,0);//返回GMT时间(比本地多8小时)的毫秒数1607817600000
    两者参数规则的不同:
    Date.parse()方法接收一个表示日期的字符串参数,例如要表示2016年10月16号对应的毫秒数,可以 这样做:Date.parse("10/16/2016")或Date.parse("2016/10/16"),也可以写成Date.parse("2016-10-16"),但是只在chrome中才会返回数据,如果传入的字符串不能表示日期,那么它会返回NaN,看起来很简单是吧,但实际上此方法的行为因实现而异,而且通常  是因地区而异,用兴趣的童鞋可以查阅相关资料了解一下。
    Date.UTC()的参数分别是年份、基于0的月份(一月是0;二月是1,以此类推)、月中的哪一天(1到31)、小时数(0到23)、分钟、秒以及毫秒数。在这些参数中,只有前两个参数(年和月)是必须的。如果没有提供月中的天数,则假设天数为1;如果省略其他参数,则统统假设为0。
  • Date.now():和调用Date构造函数而不传参的情况十分类似,是ECMAScript5新增的方法,返回表示调用这个方法时的日期和时间的毫秒数,兼容IE9+、Firefox 3+、Opera 10.5和chrome。
  • 日期/时间组件方法
    setFullYear(年)/setUTCFullYear(年)
    ;//设置日期中的年数

    setMonth(月)/setUTCMonth(月);//设置日期中的月数
    setDate(日)/setUTCDate(日);//设置日期中的日数
    setHour(时)/setUTCHour(时);//设置日期中的小时数
    setMinutes(分)/setUTCMinutes(分);//设置日期中的分钟数
    setSeconds(秒)/setUTCSeconds(秒);//设置日期中的秒数
    setMilliseconds(毫秒)/setUTCMilliseconds(毫秒);//设置日期中的毫秒数
    setTime(毫秒);//以毫秒数设置日期,会改变整个日期
    var dd=new Date(2016,4,8,17,3,46,600);//2016年5月8号17时3分46秒600毫秒
    
    	dd.setDate(16);//将日期的天数变为16|Mon May 16 2016 17:03:46 GMT+0800
    
    	dd.setUTCDate(17);//再将UTC日期的天数变为17|Tue May 17 2016 17:03:46 GMT+0800
    
    	dd.setHours(18);//再将日期的小时数变为18|Tue May 17 2016 18:03:46 GMT+0800
    
    	dd.setUTCHours(25);//参数大小超过了24,所以加一天,小时数变为1,转换为GMT时间再加8小时|Wed May 18 2016 09:03:46 GMT+0800
    
var myDate=new Date();
myDate.getYear() || myDate.getUTCYear()      
//获取当前年份(2位或3位)

myDate.getFullYear() ||myDate.getUTCFullYear()   //获取完整的年份(4位,1970-????)
myDate.getMonth() || myDate.getUTCMonth()     //获取当前月份(0-11,0代表1月)
myDate.getDate() ||   myDate.getUTCDate()     //获取当前日(1-31)
myDate.getDay()  ||  myDate.getUTCDay()     //获取当前星期X(0-6,0代表星期天)
myDate.getTime() ||   myDate.getUTCTime()    //获取当前时间(从1970.1.1开始的毫秒数)
myDate.getHours() ||    myDate.getUTCHours()  //获取当前小时数(0-23)
myDate.getMinutes() ||  myDate.getUTCMinutes() //获取当前分钟数(0-59)
myDate.getSeconds()  ||  myDate.getUTCSeconds()  //获取当前秒数(0-59)
myDate.getMilliseconds()  || myDate.getUTCMilliseconds()  //获取当前毫秒数(0-999)
var dd=new Date();//Sun May 08 2016 19:36:03 GMT+0800
	var dd1=dd.getFullYear();//2016
	var dd2=dd.getYear();//116
	var dd3=dd.getMonth();//4
	var dd4=dd.getUTCHours();//11
 
  • 继承的方法
    toLocaleString();//返回浏览器设置的时区的日期和时间(会包含AM或PM,但不包含时区)
    toString();//返回带有时区的日期和时间(时间一般为24小时格式)
    valueOf();//返回日期的毫秒数表示
    var dd=new Date();
    	var dd1=dd.toLocaleString();//2016/5/8 下午7:30:23
    	var dd2=dd.toString();//Sun May 08 2016 19:30:23 GMT+0800
    	var dd3=dd.valueOf();//1462707023915
     
  • 日期格式化方法
    toDateString();
    //以特定于实现的格式显示星期、月、日、年
    toTimeString();
    //以特定于实现的格式显示时分秒和时区
    toLocaleDateString();
    //以特定于地区的格式显示星期、月、日、年
    toLocaleTimeString();
    //以特定于地区的格式显示时分秒
    toUTCString();
    //以特定于实现的格式显示完整的UTC日期
    var dd=new Date();//Sun May 08 2016 19:14:36 GMT+0800
    	var dd1=dd.toDateString();//Sun May 08 2016
    	var dd2=dd.toTimeString();//19:14:36 GMT+0800 (䏭彿 åæ¶é´)
    	var dd3=dd.toLocaleDateString();//2016/5/8
    	var dd4=dd.toLocaleTimeString();//下午7:14:36
    	var dd5=dd.toUTCString();//Sun, 08 May 2016 11:14:36 GMT
 
参考自JavaScript高级程序设计【第三版】
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值