javascript日期操作

时间对象是一个我们经常要用到的对象,无论是做时间输出、时间判断等操作时都与这个对象离不开。它是一个内置对象。

IE8不支持new Date("2016-3-28")这种格式的日期声明方式,如果使用会提示NaN。可以使用new Date(year, month, day)这种方式代替。注意其中month范围是0~11。

在网上找到一段代码,用来格式化时间的。

An Extended ISO 8601 local Date format YYYY-MM-DD can be parsed to a Date with the following:
function parseISO8601(dateStringInRange) {
  var isoExp = /^\s*(\d{4})-(\d\d)-(\d\d)\s*$/,
  date = new Date(NaN),
  month,
  parts = isoExp.exec(dateStringInRange);
  if(parts) {
    month = +parts[2];
    date.setFullYear(parts[1], month - 1, parts[3]);
    if(month != date.getMonth() + 1) {
    date.setTime(NaN);
  }
}
return date;
}

方法:分为得到时间方法、设置时间方法和转换时间方法 得到时间方法

几个需要注意的地方:

1、得到日期和年和设置日期和年时间,其中很怪的问题就是不能对月份进行设置(比较的怪):


2、获得年的时候最好用getFullYear()方法来做
3、由于针对月份,JS是从0开始的,因此需要对月份进行操作时要加1

下面是几个关于时间的经典而且经常会用到的例子,希望对大家会有提高的。

1、将2005-8-5转换成2005-08-05格式


2、得到间隔天数


3、得到间隔时间


4、得到今天的日期


6、数字日期转汉字



 New Document 





7、得到前N天或后N天的日期
方法一:


方法二:


方法三:


javascript对日期处理的常用方法类



字符串转日期

function toDate(str){
    var sd=str.split("-");
    return new Date(sd[0],sd[1],sd[2]);
}
//在IE8以下是不支持的
function toDate(str){
    return new Date(str);
}

比较日期大小

var d1=toDate("2001-2-2 ");
var d2=toDate("2001-2-3");
alert(d1>d2);

获取两日期月份之差

var diff = (date1. getFullYear() - date2.getFullYear()) * 12
               + date1.getMonth() - date2.getMonth();

你可能感兴趣的:(javascript日期操作)