Date对象

Date对象用于对时期和时间进行存储和计算

getTime():返回Date对象与UTC时间1970年1月1日午夜之间相差的毫秒数。用法:经常用于不修改原时间,用来复制

setTime():以毫秒值设置Date对象

1.每个分量都有一对儿get/set方法

*星期没有set方法!  getDay()获得星期,没有setDay

2.命名:年月日不加s,时分秒加s

get/setFullYear();get/setMonth();get/setDate();

get/setHours();get/setMinutes();get/setSeconds();

3.返回值:

月中的日取值范围从1-31结束

星期:日 一 二 三 四  五  六 

下标:0   1   2  3  4    5    6

月份:1月  2月     11月  12月
            0    1          10    11

用于计算时:要减一修正

创建Date对象:4种:
    1. var now=new Date(); //创建一个新日期对象同时,保存了*客户端*当前时间点的毫秒数。——获得当前时间
    自定义时间对象:
    2. var time=new Date("xxxx/xx/xx [xx:xx:xx]")
    3. var time=new Date(年,月-1,日[,时,分,秒)

    date.getTime(): 获得日期对象中的毫秒数

 日期转字符串输出:
      1. date.toLocaleString(); 转为完整日期字符串
      2. date.toLocaleDateString(); 仅转为日期部分
      3. date.toLocaleTimeString(); 仅转为时间部分    

 

 示例代码:

<!DOCTYPE html>
<html>
 <head>
  <title> date对象 </title>
  <meta charset="utf-8" />
  <script>
	var hiredate=new Date("2012/6/30");
	var enddate=new Date(hiredate.getTime());
	enddate.setFullYear(enddate.getFullYear()+3);
	console.log(enddate.toLocaleDateString());
	//计算续签时间:renewal
	//    复制enddate到renewal
	var renewal=new Date(enddate.getTime());
	//    将renewal的月份-1
	renewal.setMonth(renewal.getMonth()-1);
	//    如果renewal是星期6
	if(renewal.getDay()==6){
	//        则renewal减1天
		renewal.setDate(renewal.getDate()-1);
	}else if(renewal.getDay()==0){
	//    否则,如果renewal是星期日
	//        则renewal减2天
		renewal.setDate(renewal.getDate()-2);
	}
	console.log(renewal.toLocaleDateString());
	//计算提醒时间:remind
	//   复制renewal到remind
	var remind=new Date(renewal.getTime());
	//   将remind减7天
	remind.setDate(remind.getDate()-7);
	console.log(remind.toLocaleDateString());

    function getDueDate(days){
		//Step1: 获得当前时间: now
		var now=new Date();
		//循环: 反复为当前时间+1天,到i<days结束
		for(var i=0;i<days;i++){
		//        如果当前时间是周五
			if(now.getDay()==5){
		//             就先加2天
				now.setDate(now.getDate()+2);
			}else if(now.getDay()==6){
        //        否则,如果当前时间是周六
		//             就先加1天
				now.setDate(now.getDate()+1);
			}
		//      默认都要加1天!
			now.setDate(now.getDate()+1);
		}
		return now;
	}
    //xxxx年xx月xx日 星期几 上午/下午 xx:xx
    function format(date){
		var arr=[/*2015,10,17,六,上午,10,14*/];
		//获得date中的年份追加到arr中
		arr.push(date.getFullYear());
		//获得date中的月份M,先+1修正
		var M=date.getMonth()+1;
		//如果M<10,则M修改为"0"+M
		//将M追加到arr中
		arr.push(M<10?"0"+M:M);
		//获得date中的日期d
		var d=date.getDate();
		//如果d<10,则d修改为"0"+d
		//将d追加到arr中
		arr.push(d<10?"0"+d:d);
		//获得data中的星期w,(0 1 2....6)
		var week=["日",'一','二','三','四','五','六'];
		//获得week中w位置的字,追加到arr中
		arr.push(week[date.getDay()]);
		//获得data中的小时h,
		var h=date.getHours();
		//如果h<12,则arr中追加"上午",否则追加"下午"
		arr.push(h<12?"上午":"下午");
		//如果h>12,则h修改为h-12
		h>12&&(h-=12);
		//如果h<10,则h修改为"0"+h,将h加入arr中
		arr.push(h<10?"0"+h:h);
		//获得date中的分钟m, 如果m<10,m改为"0"+m
		var m=date.getMinutes();
		//将m加入arr中
		arr.push(m<10?"0"+m:m);
		var str=arr.join("");
		//获得date中的秒钟s, 如果s<10,s改为"0"+s
		var s=date.getSeconds();
		//将m加入arr中
		arr.push(s<10?"0"+s:s);
		var str=arr.join("");
		//"20151017六上午101426"
		var reg=/(\d{4})(\d{2})(\d{2})([一二三四五六日])([上下]午)(\d{2})(\d{2})(\d{2})/;
		console.log(str);
		console.log(reg.exec(str));
		return str.replace(reg,"$1年$2月$3日 星期$4 $5 $6:$7:$8");
	}
  </script>
 </head>
 <body>
  <button onclick="alert(format(new Date()))">格式化输出日期</button>
  <button onclick="alert(getDueDate(prompt('输入天数')).toLocaleDateString())">n个工作日后的日期</button>
  
 </body>
</html>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值