【面向JS--Date对象】

来源:互联网 发布:2018开淘宝店挣钱吗 编辑:程序博客网 时间:2024/05/22 12:37

Date: 专门封装一个时间,并提供访问时间的API。

封装了1970年1月1日0点至今的毫秒数,只要在程序中保存日期或者时间就需要用到Date对象。

创建:

4种:

1、 创建时间,并自动保存客户端系统时间:

var now=new Date();

2、创建时间,并保存自定义时间:

var date=new Date("yyyy/MM/dd hh:mm:ss");var date=new Date(yyyy,MM-1,dd,hh,mm,ss)

3、用毫秒数创建一个时间:

一个时间对象内保存的是一个毫秒数(1970年1月1日至今)获取一个日期中的毫秒数: var ms=date.getTime();将一个毫秒数转为日期: var date=new Date(ms);

4、复制一个日期对象:

问题: 日期的计算都是直接修改原日期对象      无法同时保留起始时间和截止时间解决: 在日期计算前,先将起始时间复制一个副本      再用副本计算截止时间var date2=new Date(date1);

API:

单位: FullYear(年) Month(月) Date(日) Day(星期) Hours(时) Minutes(分) Seconds(秒) Milliseconds(毫秒)

1、每个单位都要有一对儿get/set方法

getXXX()   负责获取指定单位的数值setXXX(值) 负责修改指定单位的值    优: 自动计算时间进制    特例: Day没有set,因为Day是根据日期计算出来的固定值
var hiredate=new Date("2012/6/30");var enddate=new Date(hiredate);enddate.setFullYear(enddate.getFullYear()+3);var renewdate=new Date(enddate);renewdate.setMonth(renewdate.getMonth()-1);if(renewdate.getDay()==0){    renewdate.setDate(renewdate.getDate()-2);}else if(renewdate.getDay()==6){    renewdate.setDate(renewdate.getDate()-1);}var alertdate=new Date(renewdate);alertdate.setDate(alertdate.getDate()-7);console.log(hiredate);//Sat Jun 30 2012 00:00:00 GMT+0800console.log(enddate);//Tue Jun 30 2015 00:00:00 GMT+0800console.log(renewdate);//Fri May 29 2015 00:00:00 GMT+0800console.log(alertdate);//Fri May 22 2015 00:00:00 GMT+0800

2、命名:

年月日星期 都没有s结尾,时分秒毫秒 都有s结尾

3、取值范围:

只有Date 月中的日 从1开始到31结束其余都是从0开始,到 n-1 结束Month: 从0开始,到11结束, 计算机中的月份值比现实小1,需要修正Date: 1~31  和现实一样,不需要修正Day: 0~6 不需要修正(0是指星期天)Hours: 0~23不需要修正Minutes: 0~59 不需要修正Seconds: 0~59 不需要修正
function format(date){    var weeks=["日","一","二","三","四","五","六"];    var now=new Date(date);    var y=now.getFullYear();    var M=now.getMonth()+1;    if(M<10){        M="0"+M;    }    var d=now.getDate();    if(d<10){        d="0"+d;    }    var week=weeks[now.getDay()];    var h=now.getHours();    if(h<12){        var am="上午";    }else{        var am="下午";        if(h>12)        h-=12;    }     if(h<10) h="0"+h;    var m=now.getMinutes();    console.log(    `现在时间是:${y}年${M}月${d}日 星期${week} ${am}${h}:${m}`    );    //``反引号 es6语法 比""强大,但要注意浏览器兼容性问题}format(new Date());//现在时间是:2017年10月11日 星期三 下午04:44

日期计算:

1、两日期对象相减: 得到毫秒差,可用于计算时间差和倒计时

new Date("2012/6/30") - new Date("2012/6/29")//86400000

2、对任意单位做加减:

3步: 1. 取出值, 2. 做加减, 3. 放回去可简写: date.setXXX(date.getXXX()+n);

日期格式化:

1、String(date)    将date转为当地时间的完整格式2、date.toLocaleString()    将date转为当地时间的简版格式3、date.toLocaleDateString()    将date转为当地时间的简版格式,仅保留日期部分4、date.toLocaleTimeString()    将date转为当地时间的简版格式,仅保留时间部分5、date.toGMTString();    将date转为0时区标准时间6、date.getTime()    讲date转为自1970年1月1日0点至今的毫秒数,又称时间戳    快速转换 +new Date()
原创粉丝点击