博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第八课:日期的扩展与修复
阅读量:7064 次
发布时间:2019-06-28

本文共 1601 字,大约阅读时间需要 5 分钟。

Date的构造分为四种:

new Date()

new Date(value)       //传入毫秒数

new Date(dateString)   

new Date(year,month,day hour,minute , second, millisecond)     //day后面的hour... , 可选

第三种可以传很多字符串格式,推荐使用"2007/08/12 12:34:45",时分秒可选,这个所有的浏览器都支持。

JS的日期抄自java的java.util.Date,但是Date这个类中的很多方法对时区支持不够,java推荐使用calendar代替Date。

js中的Date,月份和小时都是基于0的,比如:date.getMonth(),如果是6月份,就会返回5(0-11)。date.getHours()返回的是(0-23)之间的整数。

年份从1900年开始。

接下来介绍几个日期方法:

当前时间的毫秒数

if(!Date.now){        //返回当前时间的毫秒数,低版本浏览器不支持

  Date.now = function(){  return +new Date;  }    //支持低版本浏览器

}

日期相差的天数

var getDayBoth = function(start,end){

   return Math.abs(start*1 - end*1) / 1000 /60/60/24;     //先把毫秒字符串转化成数字,然后相减,取绝对值

}

传入一个日期,求所在月的第一天

return new Date(date.getFullYear(),date.getMonth(),1)       //尽管getMonth会返回从0开始的数值,但是在new Date时,也是写入从0开始的月份。

传入一个日期,求所在月的最后一天

return new Date(date.getFullYear(),date.getMonth()+1,0)     //月份+1,进入到下一个月,然后天数为0,退后一天。也就是当月的最后一天。

判断是否为闰年:   year % 4 ==0 && year %100 !=0 || year % 400 ==0   ? 闰年(29天) :28

Date.prototype.isLeapYear = function(){

  return new Date(this.getFullYear(),2,0).getDate() == 29;   //当前日期(当前年份的2月份的最后一天)的天是否是29,是的话,就是闰年。

}                                                             //getDate返回当前日期的天,范围在(1-31)

 

返回当前月份的天数:

第一种方法:1,3,5,7,8,10,12这几个月的天数都是31天,4,6,9,11这几个月都是30天,2月,如果是闰年就是29天,不是闰年就是28天。switch就可以解决。

第二种方法:return new Date(date.getFullYear(),date.getMonth()+1,0).getDate();

 

 这里介绍几个浏览器兼容性问题:

1.W3C访问float,cssFloat,IE8以及以下styleFloat。

2.大多数浏览器checkbox的value默认为on,而谷歌浏览器返回空字符串。

3.对于动态添加的option的select,在IE10以及以下版本下,选择动态添加的option,它的selected不会为true,需要先访问它的select.selectedIndex,然后再option.selected.

4.在safari中,一旦select元素被disabled,它的孩子也会disabled,一个值都取不到。

 

 

加油!

 

转载于:https://www.cnblogs.com/chaojidan/p/4135437.html

你可能感兴趣的文章
Java反射(Reflection)获取运行时类的结构
查看>>
来美国一年半了,命里有时终须有,命里无时莫强求(2)
查看>>
swiper轮播图(逆向自动切换类似于无限循环)
查看>>
阿里云域名解析+网站备案
查看>>
转载文章 RESIZING WIN32 DIALOGS
查看>>
开发规范(一) 如何记录日志 By 阿里
查看>>
1117bootstrap
查看>>
centos6.5上卸载和安装JDK7
查看>>
从文件加载至NSData
查看>>
Java连接访问Oracle--Connection.setSavepoint()方法使用
查看>>
LeetCode OJ:Maximal Square(最大矩形)
查看>>
抽象工厂 C++实现
查看>>
[KMP]字符串匹配算法
查看>>
[转] 随机数是骗人的,.Net、Java、C为我作证
查看>>
第一天
查看>>
VUE基础插值表达式
查看>>
如何在mysql客户端即mysql提示符下执行操作系统命令
查看>>
人月神话读后感
查看>>
Learning Agile software Development
查看>>
HDFS原理解析(整体架构,读写操作流程及源代码查看等)
查看>>