date js 半年_js Date 日期使用上的一个坑
作者:坚强一点
链接:https://zhuanlan.zhihu.com/p/22253858
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
在写js 日历插件的时候遇到一个奇怪的情况。
日历当前的日期是 2016-08-31 号 用 js Date 类型保存的当前日期
var currDate = new Date(); // 初始化的时候的当期日期,
当我点击下一个月的时候,直接取出当期日期的月份,然后 +1
直接重置 currDate 的月份 的代码ru
currDate.setMonth(currDate.getMonth() + 1);
在大部分情况下这种做法是没有问题的。
但是如果当前月份是 2016-08-31 的时候,我取出当期月份然后+1最后的结果是2016-10-01
月份增加了2月,而不是想象中的只增加了一个月,如果细心的人已经发现了,日期的天数变化,从31号变到了1号,其实问题也就出现在这里。
因为当我使用“currDate.setMonth(currDate.getMonth() + 1);”这段代码重置月份的时候,
最后的结果是 2016-09-31,但是实际情况是,2016-09月份的时候只要30填,没有31号,所以日期就自动往后延期了一天变成了2016-10-01
所以最后我把重置的代码改成了如下
currDate.setMonth(currDate.getMonth() + 1);
currDate.setDate(1);
手动吧日期放到了第一天,心想这下应该没问题了。结果实际情况一点都没变。还是从2016-08-31 直接跳到了2016-10-01。
其实问题还是一样的情况,因为在执行 currDate.setMonth(currDate.getMonth() + 1); 这段代码的时候 currDate 已经是 2016-10-01 号了,这个时候在执行
currDate.setDate(1);这段代码的时候 只是吧 当前月份的日期重置到了1号,所以没有任何变化。
最后把代码改成了
currDate.setDate(1);
currDate.setMonth(currDate.getMonth() + 1);
解决问题。
date js 半年_js Date 日期使用上的一个坑相关推荐
- date js 半年_JavaScript Date对象
Date对象 源码下载 最初接触编程,没有接触过非常讲究时间控制的领域,往往对时间没有概念,单片机编程,嵌入式开发,操作系统,无人及姿态控制往往会关注毫秒ms.微秒us级的时间概念. 什么是并行,什么 ...
- date js 减去_JS日期减去8小时(北京时间转UTC)
//日期原型 Date.prototype.Format = function(fmt) { //author: meizz var o = { "M+" : this.getMo ...
- 微信网页开发wx.getLocation在安卓手机上的一个坑
我在wx.getLocation的成功回调函数里,执行了一句 this.lon = res.longitude.toFixed(6) 在苹果手机和调试工具上都是能获取到数据的,但是在安卓手机上this ...
- date js 半年_moment.js 搜索栏获取最近一周,一个月,三个月,半年,一年时间
统计时间 label: '统计时间', name: 'countTime', type: 'select', data: [ { value: '0', text: '最近一周' }, { value ...
- date js 减去_js 当前时间减去3个月
Redd.config里面的时间戳和随机字符串是哪个签名的时间戳和随机字符串 //代码贴给你,你就明白拉. //前台JS获取timeStamp : var d = new Date(); var ti ...
- date javascript 时区_js Date 时间戳 时区等问题总结
js 的Date 时间戳并没有时区的概念 在任何时区 打印new Date(1) 显示的都是相对时间 如下: var t = new Date(1); t // Thu Jan 01 1970 08 ...
- ensp 移动主机搜索不到AP信道_案例WiFi信道上的一个坑
近期处理的一件比较奇怪的投诉,光猫的无线WiFi功能不能使用,其他路由器没问题,险些掉到坑里没爬上来.给大家分享一下. 一.投诉现象 装维人员反映客户投诉光猫的无线WiFi功能突然无法使用. 装维人员 ...
- js取服务器系统时间,JS中new Date()用法及获取服务器时间
1.获取服务器时间: var now = new Date($.ajax({async: false}).getResponseHeader("Date")); 2.new Dat ...
- new Date将字符串转化成日期格式 兼容IE,ie8如何通过new Date将字符串转化成日期格式,js中如何进行字符串替换, replace() 方法详解
new Date将字符串转化成日期格式 兼容IE,ie8如何通过new Date将字符串转化成日期格式,js中如何进行字符串替换, replace() 方法详解 //获得年月日时分秒 //传入日期// ...
最新文章
- If one day
- idea控制台输出乱码
- javaaop模式供其他项目调用_Java 分布式架构的 开源的支付项目 调试实战
- Day11多态部分-6 【1.5 多态的好处和弊端】
- Duilib学习笔记《03》— 控件使用
- 前端学习(2528):一个简单的vue app
- mysql 恢复同步_常见MySQL同步错误恢复方法
- 牛客网暑期ACM多校训练营(第五场): A. gpa(01分数规划)
- 产品需求文档写作方法(一)写前准备+梳理需求
- STC学习:八位数码管滚动显示
- 数模电路基础知识 —— 3. 常见电路符号说明(电容、电阻、电感)
- SICP第一章:构造过程抽象(1.1)
- HBase原理 -Regin切分
- 【蓝桥杯经典数学题】杨辉三角形
- python基础思维导图
- OVR模式和sklearn模型评价标准学习
- 浮点运算/半精度,单精度,双精度/浮点和定点
- git密码重置后如何登录
- bed文件 坐 标的调整(awk的用法)
- 【渝粤题库】广东开放大学 手机软件开发APP 形成性考核 -