javascript之Date对象

以前Date对象用的不多,对它的了解只是简单的获取年,月,日,时,分,秒等。由于今天要写一个倒计时的jquery插件,给了我彻底掌握它的动力……

一.新建日期对象

(1)无参创建

var date1 = new Date();
console.log(date1);					//Mon Mar 27 2017 14:18:50 GMT+0800 (中国标准时间)
console.log(date1.valueOf());		//1490595530038

1.直接创建new Date(),获取本机时间

2.valueof(),返回Date对象的员原始值(距1970年1月1日的毫秒值)

(2)参数:毫秒

var date2 = new Date(1400000000000);
console.log(date2);					//Wed May 14 2014 00:53:20 GMT+0800 (中国标准时间)

(3)一个参数:字符串

var date3 = new Date("2017-02-02 08:08:08");	
console.log(date3);					//Thu Feb 02 2017 08:08:08 GMT+0800 (中国标准时间)

(4)多个参数:数值

var date4 = new Date(2017,02,02,08,08,08);
console.log(date4);					//Thu Mar 02 2017 08:08:08 GMT+0800 (中国标准时间)

(5)其他情况

var date5 = new Date(2017,02,02);
console.log(date5);					//Thu Mar 02 2017 00:00:00 GMT+0800 (中国标准时间)
var date6 = new Date("2017-02-02 08:08");
console.log(date6);					//Thu Feb 02 2017 08:08:00 GMT+0800 (中国标准时间)
var date7 = new Date("2017-02-02 08:");
console.log(date7);					//Thu Feb 02 2017 08:00:00 GMT+0800 (中国标准时间)
var date8 = new Date(2017,02,02,09);
console.log(date8);					//Thu Mar 02 2017 09:00:00 GMT+0800 (中国标准时间)

1.未指定的默认为0

2.字符串形式:只指定小时,后面要有冒号,不然会报错,如date7

二.获取(当前日期的年月日时分秒)

var date = new Date();
console.log(date);					//Mon Mar 27 2017 11:08:05 GMT+0800 (中国标准时间)
console.log(date.getFullYear());	//2017	(四位数字返回年份)
console.log(date.getMonth());		//2		(0~11,用的时候+1)
console.log(date.getDate());		//27	(1~31月的日期)
console.log(date.getUTCDate());
console.log(date.getDay());			//1		(0~6周的星期,用的时候+1)
console.log(date.getHours());		//11	(0~23小时,注意时间本身就是从0开始的,不需要+1)
console.log(date.getMinutes());		//8		(0~59分钟,同上)
console.log(date.getSeconds());		//5		(0~59秒,同上)
console.log(date.getMilliseconds());//219	(0~999毫秒,同上)

1.UTC是世界标准时,和GMT(格林威治时间)是一样的。

2.把get换成getUTC,就是获取世界标准时的时间日期。(可把测试一下小时,或把本地时间修改到凌晨测试一下日期)

三.设置(当前日期的年月日时分秒)

var date = new Date();
date.setFullYear(2016);
date.setMonth(3);
date.setDate(31);
date.setHours(10);
date.setMinutes(0);
date.setSeconds(12);
date.setMilliseconds(300);
console.log(date);     //Sun May 01 2016 10:00:12 GMT+0800 (中国标准时间)

注意:我上面设置的4月31日,4月只有30天的,它自动转成了5月1日

 四.获取/设置时间到1970年1月1日的毫秒数

var date1 = new Date();
console.log(date1.getTime());		//1490587123430		(返回1970年1月1日至今的毫秒数)

var date2 = new Date();
date2.setTime(110000000000);		//Wed Jun 27 1973 11:33:20 GMT+0800 (中国标准时间)
console.log(date2);

console.log(Date.UTC(2017,08,12));	//1505174400000		参数(year,month,day,hours,minutes,seconds,ms)
									//并且是Date的静态方法。返回1970年1月1日到设定日期的毫秒数)

五.日期转为字符串

var date = new Date();
var str1 = date.toString();
console.log(str1);	//Mon Mar 27 2017 13:01:18 GMT+0800 (中国标准时间)
console.log(typeof str1);	//string
var str2 = date.toDateString();	
console.log(str2);			//Mon Mar 27 2017
var str3 = date.toTimeString();
console.log(str3);			//13:01:18 GMT+0800 (中国标准时间)
var str4 = date.toUTCString();
console.log(str4);			//Mon, 27 Mar 2017 05:01:18 GMT
var str5 = date.toLocaleString();
console.log(str5);			//2017/3/27 下午1:01:18
var str6 = date.toLocaleTimeString();
console.log(str6);			//下午1:01:18
var str7 = date.toLocaleDateString();
console.log(str7);			//2017/3/27

日期转成纯数字用local比较方便

 六.字符串转日期

var d1 = Date.parse("2017/08/08");	
console.log(d1);					//1502121600000
var d2 = Date.parse("2017-08-08");	
console.log(d2);					//1502150400000
var d3 = Date.parse("Aug 8,2017");	
console.log(d3);					//1502121600000
var d4 = Date.parse("2017@08@08");
console.log(d4);					//1502121600000

console.log(new Date(1502150400000));//Tue Aug 08 2017 08:00:00 GMT+0800 (中国标准时间)
console.log(new Date(1502121600000));//Tue Aug 08 2017 00:00:00 GMT+0800 (中国标准时间)

七.倒计时案例

function countDown(){
	var startTime = new Date().valueOf(),
		endTime = Date.parse("2017-03-28 15:00:00"),
		restTime = endTime - startTime,
		day,hour,minute,second;

	day = Math.floor((restTime/(1000*60*60*24)));
	hour = Math.floor(restTime/(1000*60*60)%24);
	minute = Math.floor(restTime/(1000*60)%60);
	second = Math.floor(restTime/1000%60);
	var str = "剩余"+day+"天"+hour+"小时"+minute+"分钟"+second+"秒";
	console.log(str);
	setTimeout(countDown,1000);
}

countDown();

 

转载于:https://my.oschina.net/wyc1219/blog/868400

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值