日期

不象数值和字符串,JavaScript里日期没有原生值。

 

定义日期

Date对象用于处理日期和时间。 可以通过 new 关键词来定义Date对象。

var d=new Date(); // Date对象自动使用当前的日期和时间作为其初始值

构造函数的参数细节请参考Date()

操作日期

通过Date对象所提供的方法,可以单独取出或设置日期的年、月、日、时、分、秒、毫秒等部分的值。

日期的加减

日期间的间隔

日期对象内部被存储为从1970.1.1开始的毫秒数,两个日期对象直接相减即为之间间隔的毫秒数。

var d1 = new Date("2016/12/01"),
    d2 = new Date("2017/12/01");

console.log((d2-d1)+"毫秒");

而要获得间隔的天数或时间数只要将间隔的毫秒数做一下转换就行了。

//接上面的例子
//获取间隔的天数
console.log((d2-d1)//1000/60/60/24 +"天");
//获取间隔的时间
console.log((d2-d1)//1000/60/60 +"小时");

日期加减天数

有时我们需要计算某个日期N天前或N天后的日期,这个也是通过经由毫秒数转换实现的。

   function plusminus(date,days) {
      return new Date(date.getTime()+days*24*60*60*1000);
   }

日期的比较

使用比较运算符

使用比较运算符可以比较两个日期对象的大小。 比如:

var d1 = new Date("2016/02/01"),
    d2 = new Date("2017/02/01");
console.log(d1>d2);  // false

但等号比较特殊,必须是同一个对象实例才会返回true,否则即使是同一个日期值也是返回false。

var d1 = new Date("2017/02/01"),
    d2 = new Date("2017/02/01");
console.log(d1==d2);  // false

使用Date.getTime()

比较两个日期值的大小,可以先通过Date.getTime()方法取得数值型的毫秒值再做比较

//比较两个日期的大小
//如果date1大于date2,返回1
//如果date1等于date2,返回0
//如果date1小于date2,返回-1
function compare(date1,date2)}
	if (!date1  && !date2) {
		return 0;
	}
	if (!date1) {
		return -1;
	}
	if (!date2) {
		return 1;
	}
	var time1 = date1.getTime(),
	    time2 = date2.getTime();
        if (time1>time2) {
		return 1;
	} else if (time1=time2) {
		return 0;
	} else {
		return -1;
	}
	
}