JS中怎样使用Date对象加减日期

这一周工作主要是写js,遇到使用JS加减时间的问题,觉得需要总结记录一下。为了下次遇到这种问题时查阅方便,也为了更好的理解记忆。

var date = new Date(2018,0,7)//新建一个时间,用于表示2018年1月7日。

为什么用0表示1呢,这是一个js的设计缺陷,0-11表示1-12月

日期相加

如果date要使用多次,要将这个日期赋给一个temp变量,操作temp完成计算。

var temp = new Date(date);

例1:加一个具体时间-> x年y月z日

temp.setFullYear(temp.getFullYear() + x);//注意是FullYear
temp.setMonth(temp.getMonth() + 1 + y);//由于设计缺陷,要在设置月份的时候就加1
temp.setDate(temp.getDate() + z);//注意是Date
$("#year").val(temp.getFullYear());
$("#month").val(temp.getMonth());//如果setMonth()中没有加1,那么在这加1
$("#day").val(temp.getDate);

注意,一定顺序是setFullYear()->setMonth()->setDate,不然时间相加会不准确。

日期相减

temp.getTime(); //1515254400000,以Number形式表示的时间戳

计算date1和date2之间的天数差值

var timesDiff = Math.abs(date1.getTime() - date2.getTime);
var diffDays = Math.ceil(timesDiff / (1000 * 60 * 60 * 24));//向上取整

但是如果要对天数进增减,那只能先将在setDate()中增减,因为你在获取之后增减可能出现0-31以外的数

关于Date的其他属性,可以查看廖雪峰的JS教程

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 日期的处理在大大小小的iOS项目中都十分常见,随着Swift3.0正式版的即将推出,语法的改变让NSDate以及相...
    鱼与愚七阅读 4,174评论 0 0
  • 处理日期的常见情景 NSDate -> String & String -> NSDate 日期比较 日期计算(基...
    KAKA_move阅读 4,256评论 0 0
  • 时间与日期ECMAscript 提供了 Date 类型来解决时间与日期类型 日期格式化方法 Date类型还有一些专...
    程咸菜阅读 4,514评论 0 0
  • Date类型 Date类型使用自UTC(Coordinated Universal Time,国际协调时间) 19...
    胖胖冰阅读 3,964评论 0 0
  • 假期上班第一天,新的一年,新的一周,新的一月,按说是要有新的面容迎接的,新的自我,新的积极的姿态,可是,人在这个环...
    cc08阅读 1,001评论 0 0