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() 方法详解 //获得年月日时分秒 //传入日期// ...
最新文章
- 字节跳动一面:i++ 是线程安全的吗?
- angular-oauth2 —— NG 的 OAuth2 认证模块
- 大数据系列修炼-Scala课程07
- vue 访问 const 变量_var与let、const的区别
- 吉大18秋学期C语言作业二答案,吉大18秋《C语言程序设计》在线作业12参考
- spring boot api文档_精讲RestTemplate第1篇-在Spring或非Spring环境下如何使用
- ETL作业调度软件TASKCTL自定义扩展作业类型插件安装
- 地壳中元素含量排名记忆口诀_高中化学短周期元素推断题的常见题眼
- 茅侃侃,80后技术人与你同在 | 一周业界事
- matlab仿真弹簧波,基于Matlab/Simulink的三弹簧谐振子微振动的仿真实验
- HDU 1079 Calendar Game 博弈
- 系统架构设计:平滑发布和 ABTesting,你都会吗?
- Atitit mq的AMQP 协议 STOMP2 、MQTT3 等协议 MQTT,XMPP,STOMP,AMQP,WAMP 目录 1. AMQP in a Nutshell	1 2. MQTT概述
- 微信小程序通过”链接/文字/数字等等“生成二维码
- 99行拓扑优化matlab程序解读,99行拓扑优化 代码解析
- 未注册域名批量查询工具
- 【游戏建模模型制作全流程】ZBrush蜥蜴模型雕刻教程
- 计算机一级怎么截图保存到桌面,怎么截屏电脑桌面
- Highest Scoring Word
- 楷体DB_2312 安装包
热门文章
- mysql写什么不同_mysql - 编译配置PHP时,两种配置写法有什么不同
- python中的集合set
- NLP界新SOTA!吸纳5000万级知识图谱,一举刷爆54个中文任务!
- 周志华教授专著《集成学习:基础与算法》上市,豆瓣满分森林书破解AI实践难题...
- Science | 再创生命奇迹!日本科学家造出了不需要“父亲”的大鼠及小鼠
- Java总结:Spring5框架(1)
- Django - 中间件
- Django - AJAX
- axios请求本地的json文件在打包部署到子目录域名下,路径找不到
- Spring入门之一-------实现一个简单的IoC