第八课:日期的扩展与修复

标签: 第八课:日期的扩展与修复
4人阅读 评论(0) 收藏 举报
分类:

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,一个值都取不到。重点内容

查看评论

学习淘淘商城第八课(SSM框架整合之Dao层整合)

上节课我们一起学习了如何使用逆向工程,以及如何将逆向工程生成的代码合并到我们的工程当中,这节课我们学习一下怎样整合我们的Dao层。        我们在一个Spring项目中往往有三层即Dao层、Se...
  • u012453843
  • u012453843
  • 2017-03-25 13:18:52
  • 2020

新版中日交流标准日本语初级第八课之基本课文I

第八課 李さんは 日本語で 手紙を 書きます。 基本课文 第一句:李さんは 日本語で 手紙を 書きます。小李用日语写信。 这里的「で」和之前第6课所讲的一样,都是表示方法和手段。 第二句:わたしは 小...
  • bendan999999999
  • bendan999999999
  • 2018-03-24 09:39:04
  • 19

R-CNN实现物体检测网站

http://www.cs.berkeley.edu/~rbg/
  • u012556077
  • u012556077
  • 2015-09-16 22:19:27
  • 257

JS时间类扩展

日期格式化/** * 日期对象扩展(日期格式化) * @param fmt (yyyy-MM-dd hh:mm:ss.S) * @returns */ Date.prototype.form...
  • qq_232911373
  • qq_232911373
  • 2016-06-23 14:11:48
  • 397

vc循序渐进实现仿QQ界面(三):界面调色与控件自绘

本篇讲述如何进行界面调色。界面调色一般有两种方法,调色板和HSL色彩变换。调色板局限于256色,这里不采用,因此用HSL色彩变换实现。首先要了解一下什么是HSL色彩空间,完整且详尽的知识请到维基百科...
  • Mirage520
  • Mirage520
  • 2012-03-09 22:14:45
  • 1262

OpenSceneGraph实现的NeHe OpenGL教程 - 第八课

简介 本课是在第七课的基础上实现将立方体变透明的效果,其中用到了OpenGL中的混合(Blend) 实现 在OpenGL中如何实现混合以及混合实现的原理和过程在NeHe教...
  • ALLENJIAO
  • ALLENJIAO
  • 2016-08-16 13:39:53
  • 211

日语语法实践篇七——新编日语第一册第八课之前文篇

 第八課 年月日下面我们先来分析前文: 前文 日本は 一年に 祝日が 十四日間 あります。日本一年有14个节日。 とくに 四月の末から五月の初めまでは ゴールデンウィークで、休みの日が 多くて、おおぜ...
  • bendan999999999
  • bendan999999999
  • 2009-11-03 20:33:00
  • 790

日期修复工具Inpaint_1.0

  • 2010年05月11日 15:50
  • 211KB
  • 下载

Windows Azure使用入门 第八课:云端备份和灾难恢复.pdf

  • 2015年02月07日 20:34
  • 2.56MB
  • 下载

学习Hadoop的第八课(利用Java接口来操作Hadoop)

上节我们学习了HDFS架构及原理,这节我们来学习如何将Hadoop与Java相结合进行开发,这也是大家学习大数据最后打交道最多的内容,毕竟Hadoop环境的搭建虽然复杂,但是一旦搭建好之后我们的任务便...
  • Durian_sir
  • Durian_sir
  • 2017-12-21 10:54:46
  • 154
    个人资料
    等级:
    访问量: 0
    积分: 154
    排名: 0
    文章存档
    最新评论