javascript中Date对象的初始化方法

在前端代码中不免会涉及到时间的操做,如何构造一个Date对象呢?javascript为咱们提供以下几种方式:javascript

new Date("month dd,yyyy hh:mm:ss");
    new Date("month dd,yyyy");
    new Date(yyyy,mth,dd,hh,mm,ss);
    new Date(yyyy,mth,dd);
    new Date(ms);

其中:前端

  • month:用英文表示月份名称,从January到December
  • mth:用整数表示月份,从0(1月)到11(12月)
  • dd:表示一个月中的第几天,从1到31
  • yyyy:四位数表示的年份
  • hh:小时数,从0(午夜)到23(晚11点)
  • mm:分钟数,从0到59的整数
  • ss:秒数,从0到59的整数
  • ms:毫秒数,为大于等于0的整数

构造函数中部分参数为负数的状况:java

>new Date(1990,11,-1)
>Thu Nov 29 1990 00:00:00 GMT+0800 (中国标准时间)
>new Date(1990,10,-1)
>Tue Oct 30 1990 00:00:00 GMT+0800 (中国标准时间)
>new Date(1990,10,-2)
>Mon Oct 29 1990 00:00:00 GMT+0800 (中国标准时间)
>new Date(1990,-1,-2)
>Tue Nov 28 1989 00:00:00 GMT+0800 (中国标准时间)
>new Date(1990,-1,0)
>Thu Nov 30 1989 00:00:00 GMT+0800 (中国标准时间)

上面的结果,你可能会有疑惑,不急,且跟我一块儿往下看:浏览器

在月份小于0时,构造函数会在月份为0的基础上,向上X月,如:函数

new Date(2015,-1,1) Mon Dec 01 2014 00:00:00 GMT+0800 (中国标准时间)code

在日小于1时,构造函数会在天数为1的基础上,向上X天,如:对象

new Date(2015,0,0) Wed Dec 31 2014 00:00:00 GMT+0800 (中国标准时间)ip

若是二者都为负数,能够先计算月,再计算日,得出正确结果,如:开发

new Date(2015,-1,0) Sun Nov 30 2014 00:00:00 GMT+0800 (中国标准时间)get

若是月大于11,日大于当月天数,自动向后推移,如(2015年2月份只有28天):

new Date(2015,1,29) Sun Mar 01 2015 00:00:00 GMT+0800 (中国标准时间)

也就是说在开发过程当中,咱们彻底能够使用new Date(yyyy,mm,dd)构造函数提供的这一特性,完成上一日,下一日,上一月,下一月这样的日期操做。

上一日:

new Date(yyyy,mm,dd-1)

下一日:

new Date(yyyy,mm,dd+1)

上一月:

new Date(yyyy,mm-1,dd)

下一月:

new Date(yyyy,mm+1,dd)

在IE九、Chrome及Firefox浏览器实测经过。 Date对象的其余方法

相关文章
相关标签/搜索