JavaScript --Date方法和API
来源:互联网 发布:php程序员的工作状态 编辑:程序博客网 时间:2024/06/16 04:02
1.Date方法
1、作用:封装一个日期,提供对日期执行操作的API
2、何时使用: 今后只要保存或操作日期都用Date对象
3、如何使用: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. 复制一个日期:
为什么: 日期的计算都直接修改原日期对象,旧时间无法保存
何时: 如果需要同时保存计算前后的两个时间时,就必须将原日期复制一个副本再计算。
如何: var date2=new Date(date1);
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. 复制一个日期:
为什么: 日期的计算都直接修改原日期对象,旧时间无法保存
何时: 如果需要同时保存计算前后的两个时间时,就必须将原日期复制一个副本再计算。
如何: var date2=new Date(date1);
ex:
var date1=new Date(); //假设当前时间为"2016/10/10";
var date2=new Date(date1); //复制date1的值给date2,date1不变
date2.getDate()+10;//在date2中获取当前天数,然后加10天,date2变成了"2016/10/20" date1不变
console.log(date1); //2016/10/10
console.log(date2); //2016/10/20
4. 直接用毫秒数创建日期对象:
var date=new Date(ms);
拓展:Date对象中保存的是1970年1月1日0点至今的毫秒数
1.Date的API
单位: 年FullYear
月Month
月Month
日Date
星期Day
时Hours
时Hours
分Minutes
秒Seconds
毫秒MilliSeconds
1.每个单位都有一对儿getXXX/setXXX方法
getXXX()方法负责读取指定分量的值:
比如: date.getDate(); //获得几号
setXXX(n) 方法负责修改指定分量的值:
比如: date.setDate(10); //修改date的日期为10号
特例: Day没有set方法,因为星期只读,不可改
2. 取值范围:
只有月中的日(Date)从1开始到31结束
其余单位都是从0开始,到进制-1结束
Month 0~11 比现实中都小1 需要修正
Date 1~31
Day 0~6 星期日是0,不需要修正
Hours 0~23 不用修正
Minutes,Seconds 0~59 不用修正
3.常见的日期计算:
1. 两日期相减: 获得毫秒差
2. 对任意单位做加减: 3步:
1. 取分量: var n=date.getXXX();
2. 做加减: n+=?;
3. 放回去; date.setXXX(n);
特点: 1. 自动调整进制
2. 直接修改原日期对象
简化版: date.setXXX(date.getXXX()+n)
比如: date.getDate(); //获得几号
setXXX(n) 方法负责修改指定分量的值:
比如: date.setDate(10); //修改date的日期为10号
特例: Day没有set方法,因为星期只读,不可改
2. 取值范围:
只有月中的日(Date)从1开始到31结束
其余单位都是从0开始,到进制-1结束
Month 0~11 比现实中都小1 需要修正
Date 1~31
Day 0~6 星期日是0,不需要修正
Hours 0~23 不用修正
Minutes,Seconds 0~59 不用修正
3.常见的日期计算:
1. 两日期相减: 获得毫秒差
2. 对任意单位做加减: 3步:
1. 取分量: var n=date.getXXX();
2. 做加减: n+=?;
3. 放回去; date.setXXX(n);
特点: 1. 自动调整进制
2. 直接修改原日期对象
简化版: date.setXXX(date.getXXX()+n)
ex:
<span style="white-space:pre"></span>var date=new Date();//获取当前shi'jiavar end=new Date(date);//复制后的值end.setDate(end.getDate()+59);//简写方式document.write("可以买"+date+"--"+end+"的火车票<br>");
4.转字符串:
.toString() -> 转为中国标准时间(+8区)
.toLocaleString() -> 转为系统当前时间格式
.toLocaleDateString -> 转为系统当前时间格式
仅包含日期部分
.toLocaleTimeString -> 转为系统当前时间格式
仅包含时间部分
.toGMTString() -> 转为国际标准时间(0时区)
.toString() -> 转为中国标准时间(+8区)
.toLocaleString() -> 转为系统当前时间格式
.toLocaleDateString -> 转为系统当前时间格式
仅包含日期部分
.toLocaleTimeString -> 转为系统当前时间格式
仅包含时间部分
.toGMTString() -> 转为国际标准时间(0时区)
ex:
<span style="white-space:pre"></span>var date=new Date(0);//获取从1970年1月1日开始的时间document.write(date.toString()+"<br>");//转为中国标准时间document.write(date.toGMTString()+"<br>");//转为国际标准时间document.write(date.toLocaleString()+"<br>");//获取系统格式时间document.write(date.toLocaleDateString()+"<br>");//仅获取年月日document.write(date.toLocaleTimeString()+"<br>");//仅获取时间
3.Date示例代码
<span style="white-space:pre"></span><script> //1.<span style="color:#ff0000;">Date--合同到期</span>//定义入职时间hiredate: 2012/6/30var hiredate=new Date("2012/6/30");//复制入职时间为到期时间enddatevar enddate=new Date(hiredate);//将enddate+3年enddate.setFullYear(enddate.getFullYear()+3);//复制到期时间为续签时间renewdatevar renewdate=new Date(enddate);//将renewdate-1月renewdate.setMonth(renewdate.getMonth()-1);//如果renewdate是周六:if(renewdate.getDay()==6){//renewdate-1天renewdate.setDate(renewdate.getDate()-1);}else if(renewdate.getDay()==0){//否则,如果renewdate是周日://renewdate-2天renewdate.setDate(renewdate.getDate()-2);}//复制续签时间为提醒时间alertdatevar alertdate=new Date(renewdate);//将alertdate-7天alertdate.setDate(alertdate.getDate()-7);console.log("到期时间"+enddate);console.log("续签时间"+renewdate);console.log("提醒时间"+alertdate);
<span style="color:#ff0000;"><span style="white-space:pre"></span>//2.Date--计算10个工作日之后的日期</span>var now=new Date();var days=10;//10个工作日之后//i从0开始,到<days结束for(var i=0;i<days;i++){//如果now是周五//now+3天//否则,如果now是周六//now+2天//否则//now+1天var day=now.getDay();//获得now的星期now.setDate(now.getDate()+(day==5?3:day==6?2:1));}console.log(now);
<span style="white-space:pre"></span><span style="color:#ff0000;">//3.Date--定义数组week,获取当前时间</span>function format(date){//定义数组week: 包含日,一,二,....,六var week=["日","一","二","三","四","五","六"];//获得date中的年保存在y中var y=date.getFullYear();//获得date中的月+1后保存在M中var M=date.getMonth()+1;M<10&&(M="0"+M);//如果M<10,改为0+M//获得date中的日保存在d中var d=date.getDate();d<10&&(d="0"+d);//如果d<10,改为0+d//获得date中的星期保存在day中var day=date.getDay();//获取week中day位置的汉字保存回day中day=week[day];//获得date中的小时保存在h中var h=date.getHours();//声明变量am,如果h<12,am就赋值为上午,否则赋值为下午var am=h<12?"上午":"下午";h>12&&(h-=12);//如果h>12,就h-12h<10&&(h="0"+h);//如果h<10,就改为0+h//获得date中的分钟保存在m中var m=date.getMinutes();m<10&&(m="0"+m);//如果m<10,就改为0+mreturn y+"年"+M+"月"+d+"日 星期"+day+" "+am+h+":"+m;}//2016年10月10日 星期一 上午11:28console.log(format(new Date()));</script>
0 0
- JavaScript --Date方法和API
- java Date 和 javascript Date
- javascript Date Format方法
- 疑惑:JavaScript的Date.UTC()方法输出和定义不一致
- Javascript的Date格式化方法
- JavaScript Date日期对象方法
- JavaScript Math和Date对象
- JavaScript Math和Date对象
- JavaScript: 给 Date 对象添加格式化方法
- JavaScript Date的原型方法扩展
- JavaScript:Date对象的getTime()方法
- JavaScript —— Date() 函数方法
- javascript一些有关date操作的方法
- (八)JavaScript Date对象属性方法
- JavaScript 的 Date 方法的使用
- javascript各种format date isInt isFloat方法
- javascript日期对象Date对象方法
- JavaScript Date对象 获取年月日的方法
- 骨牌的算法推算 p2046
- C++空类为何占一个字节
- uploader 基于上传插件的总结
- C++编程入门系列之二十一(C++程序设计必知:类的静态成员)
- java基础1
- JavaScript --Date方法和API
- FZU 1402 猪的安家 中国剩余定理
- 经济机器是如何运行的?
- Java MySQL 中文出现乱码的问题
- 关于单线程和多CPU的问题
- HotSpot中Parallel Scavenge/Parallel Old与Serial/Serial Old内存分配策略区别
- Dreamweaver创建列表及查找与替换
- Golang语言学习资源
- mybatis insert & update