【时间对象】
世界上最快而又最慢,最长而又最短,最平凡而又最珍贵,最轻易被人忽视,而又最令人后悔的就是时间。关于生命的名言警句。——高尔基
平时生活中经常会提到时间的观念,js中有时间对象,可以从这个对象身上获取很多对我们写程序有帮助的信息,时间信息。
下面我就来介绍一些时间对象。
首先,创建时间对象:
let oDate=new Date(); //Date是js中的时间对象,也是属于构造函数,我们通过new的方法new出一个时间对象
alert(oDate) //Tue Feb 28 2017 21:44:07 GMT+0800 (中国标准时间)
时间对象身上都有哪些信息:
alert(oDate.getFullYear()) //返回本地时间的年份值
alert(oDate.getMonth()) //返回本地时间的月份值。 注意: 月份为0(表示1月份)~11 0是一月
alert(oDate.getDate()) //返回本地时间的天数。
alert(oDate.getDay()) //返回日期的星期数 注:星期是从0开始的 0-6 0是周日
alert(oDate.getHour()) //返回本地时间的小时值。
alert(oDate.getMinutes()) //返回本地时间的分钟值。
alert(oDate.getSeconds()) //返回用本地时间的秒数。
alert(oDate.getMilliseconds()) //返回本地时间的毫秒值。
alert(oDate.getTime()) //返回当前时间距离1970年1月1日的毫秒数
举例:返回今天的日期
function getDay(){
var oDate=new Date();
return (oDate.getMonth()+1)+'/'+oDate.getDate()+'/'+oDate.getFullYear();
}
alert(getDay());
既然有获取,那肯定也有设置:
let oDate=new Date();
oDate.setFullYear() //设置年份值
oDate.setMonth() //设置月份值。 注:月份为0(表示1月份)~11 0是一月
oDate.setDate() //设置天数。
oDate.setDay() //设置星期数 注:0-6 0是周日
oDate.setHours() //设置小时。
oDate.setMinutes() //设置分钟。
oDate.setSeconds() //设置秒数。
oDate.setMilliseconds() //设置毫秒。
//注:设置年的时候 可以设置:年份 月份 日,设置小时的时候可以设置:小时 分钟 秒 毫秒
oDate.setFullYear(年,月,日) //下面以此类推
oDate.setHours(小时,分钟,秒,毫秒) //以此类推
举例:求本月第一天是周几
var oDate=new Date();
oDate.setDate(1);
alert(oDate.getDay());
注意:在设置天数的时候
1、多余的天数会进月
2、设置0天,上个月最后一天
3、设置负数,退月
举例:求本月有多少天
//先变到下个月
//然后设置天数为0 变成 这月最后一年
//然后获取天 也就是本月最后一天是几号就相当于本月有几天
var oDate=new Date();
oDate.setMonth(oDate.getMonth()+1,0);
alert(oDate.getDate());
平时经常用到时间对象,比如说某宝的活动倒计时,商城的活动倒计时等等:
通过获取的当前时间,以及设置想要结束日期,分别获取毫秒数,使用中间的差额来做。
oDate.getTime() 获取当前时间对象中时间距离1970年1月1日的毫秒数
246060 = 86400 * 1000
求天: n/86400
求小时 n%86400/3600
window.onload=function(){
var oDiv=document.getElementsByTagName('div')[0];
function show(){
//目标时间
var oDate=new Date(); //设置一个目标时间对象
oDate.setFullYear(2017,9,1); //设置目标对象的年月日
oDate.setHours(0,0,0,0); //设置目标时间的时分秒
var targetTime=oDate.getTime(); //目标距离1970年的毫秒数
var nowDate=new Date();
var now=nowDate.getTime(); //现在距离1970年的毫秒数
var s=parseInt((targetTime-now)/1000); //现在距离目标的秒数
var day=parseInt(s/86400);
s=s%86400; //把整数天除去剩下的秒数
var h=parseInt(s/3600);
s=s%3600;
var m=parseInt(s/60);
s=s%60;
oDiv.innerHTML='距离国庆节还有'+day+'天'+h+'小时'+m+'分钟'+s+'秒';
}
show();
setInterval(show,1000);
};
以上结束。
网友评论