【面向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()
阅读全文
0 0
- 【面向JS--Date对象】
- js面向对象学习笔记之四(Date 对象)
- Js Date对象
- js Date对象扩展
- JS Date对象兼容性
- js中Date对象
- JS的date对象
- JS-Date对象
- JS之Date对象
- js的Date对象
- JS的Date对象
- JS中Date对象
- JS Date对象
- JS-Date对象
- js中的Date对象
- js中的date对象
- js中Date对象
- js date函数|js date 格式化|js date 对象(转)
- linux中“弹出界面eth0:设备似乎不存在”的问题
- HttpClient请求和HttpURLConnect请求数据
- 最长回文子串
- AT学习报告一 软件的初步使用
- HttpURLConnection获取网络数据(实例:网路请求图片)
- 【面向JS--Date对象】
- mui之上拉刷新和mui-content结合解决ios上拉不回弹的bug
- 写给自己的话
- 堆排序
- hdu1224 Free DIY Tour【动态规划】
- centos 6.5使用 360WiFi2 无线模块
- Timeout 时间已到。在操作完成之前超时时间已过或服务器未响应。
- dpi 、 dip 、分辨率、屏幕尺寸、px、density 关系以及换算
- 将一个表中的某个字段根据id关联写入到另一张表中的某个字段中去