varmyDate=newDate();myDate.getYear();//获取当前年份(2位数字)myDate.getFullYear();//获取完整年份(4位,1970-????)myDate.getMonth();//获取当前月份(0-11,0代表一月)myDate.getDate();//获取当前日期(1-31)myDate.getDay();//获取当前周X(0-6,0代表星期日)myDate.getTime();//获取当前时间(从1970.1.1开始的毫秒数)myDate.getHours();//获取当前小时(0-23)myDate.getMinutes();//获取当前分钟数(0-59)myDate.getSeconds();//获取当前秒数(0-59)myDate.getMilliseconds();//获取当前毫秒数(0-999)myDate.toLocaleDateString();//获取当前日期myDate.toLocaleTimeString();//获取当前时间myDate.toLocaleString();//获取日期和时间得到当前13位时间戳//第一种方法Methodvartimestamp=Date.parse(newDate());//1280977330000注意:这里得到的结果是将后三位转换成(毫秒))改成000显示,使用时可能会出问题//方法二vartimestamp=(newDate()).valueOf();//结果:1280977330748//方法三vartimestamp=newDate().getTime();//结果:1280977330748获取当前10位时间戳//方法一Math.round(newDate().getTime()/1000).toString();//方法二Date.parse(newDate()).toString().substr(0,10);////方法三(newDate()).valueOf().toString().substr(0,10);JSDate对象常用参数初始化方法公式1。用整数初始化日期对象vardate1=newDate(2017,06,06);控制台日志(日期1);//2017年7月6日星期四00:00:00GMT+0800(中国标准时间)vardate1=newDate(2017,1,1);控制台日志(日期1);//WedFeb01201700:00:00GMT+0800(中国标准时间)vardate1=newDate(2017,01-2,01);控制台日志(日期1);//2016年12月1日星期四00:00:00GMT+0800(中国标准时间)vardate1=newDate(2017,06,06,06,06,06);控制台日志(日期1);//ThuJul06201706:06:06GMT+0800(ChinaStandardTime)//描述:newDate(year,month,date,hrs,min,sec)根据给定的参数创建一个日期对象//2.用字符串初始化日期对象vardate2=newDate(“2017/06/06”);控制台日志(日期2);//2017年6月6日星期二00:00:00GMT+0800(中国标准时间)vardate2=newDate(“2017-08-08”);控制台日志(日期2);//2017年8月8日星期二08:00:00GMT+0800(中国标准时间)vardate2=newDate("2017-9-9");控制台日志(日期2);//SatSep09201700:00:00GMT+0800(ChinaStandardTime)//说明:如果字符串模式不支持破折号模式,则进行字符串替换:varstrTime=”2011-04-16”;vardate2=newDate(Date.parse(strTime.replace(/-/g,“/”)));///-/g是代表全局替换的正则表达式(RegExp)对象——对于///3。用毫秒时间戳初始化日期对象vartimestamp=newDate().getTime();console.log(newDate(timestamp));//2017年6月6日星期二11:06:59GMT+0800(中国标准时间)vardate3=newDate(timestamp-1*60*60*1000);控制台日志(日期3);//TueJun06201710:06:59GMT+0800(ChinaStandardTime)//说明:时间戳是指从1970年1月1日00:00:00GMT(08:00:00,北京时间1970年1月1日)至今。时间戳唯一标识一个时刻。注意:需要+1才能直接获取当前时间对应的月份,但是如果通过传参生成时间对象,返回的月份需要区分//假设当前时间为:2021/05/2720:41:00,then:newDate().getMonth()//4,所以使用时需要+1//当传入newDate(2021,05,27).getMonth()//5//时传入参数表单传入newDate('2021/05/27').getMonth()//4js单独调用newDate(),如document.write(newDate());显示结果为:Mar3110:10:43UTC+08002012该格式的时间在使用newDate()参与计算时会自动转换为从1970.1.1开始的毫秒数。思考:根据当前时间,找出上周六和本周五的具体时间?constgetLastWeek6=date=>{constdata=newDate(date)constLastWeek6=data.getTime()-(1+data.getDay())*24*60*60*1000返回新日期(LastWeek6)}constgetThisWeek5=(date)=>{constdata=newDate(date)constThisWeek5=data.getTime()+(5-data.getDay())*24*60*60*1000returnnewDate(ThisWeek5)}//testgetThisWeek5('2020-08-27')//SatAug22202008:00:00GMT+0800(ChinaStandardTime)//如果你想转换成类似于1991-08-21的格式:then:getLastWeek6('2020-08-27').getFullYear()+'-'+parseInt(getLastWeek6('2020-08-27').getMonth()+1)+'-'+getLastWeek6('2020-08-27').getDate()getLastWeek6('2020-08-28')UTC时间处理:exportconstUTCDateToFullLocalDate=(dateStr)=>{letlocalDate=newDate();让offsetMinute=localDate.getTimezoneOffset();让offsetHours=offsetMinute/60;让UTCdate=newDate(dateStr);UTCdate.setHours(UTCdate.getHours()-offsetHours);让d=新日期(UTCdate);让日期时间e=d.getFullYear()+'/'+(d.getMonth()+1)+'/'+d.getDate()+''+d.getHours()+':'+d.getMinutes()+':'+d.getSeconds();返回日期时间}
