JavaScript-获取固定格式日期(2016-05-22)以及"连续"获取前一天、后一天的方法总结
来源:互联网 发布:php网页视频直播源码 编辑:程序博客网 时间:2024/05/17 01:15
最近接手的一个项目需要实现用JS获取日期,显示到界面上的功能,以及点击"连续点击"前一天后一天实现日期递增,递减来获取对应日期的数据的功能,需求如下图:
1.获取当日日期的方法:
/** * 获取当前日期,显示在屏幕上 */function getNowFormatDate(addDayCount) { var dayNames = new Array("周日","周一","周二","周三","周四","周五","周六") var day = new Date(); day.setDate(day.getDate() + addDayCount); var Year = 0; var Month = 0; var Day = 0; var CurrentDate = ""; // 初始化时间 Year = day.getFullYear(); Month = day.getMonth() + 1; Day = day.getDate(); CurrentDate += Year + "-"; if (Month >= 10 ) { CurrentDate += Month + "-"; } else { CurrentDate += "0" + Month + "-"; } if (Day >= 10 ) { CurrentDate += Day ; } else { CurrentDate += "0" + Day ; } CurrentDate += " " + dayNames[day.getDay()]; return CurrentDate; }在当日日期的地方(HTML文件里)调用此方法,显示
<!-- 日期和收入 --><li class="cell"><a class="on"><!-- 给当日日期位置加了一个<span></span>标签,并绑定id --><span id="whq_date">2016-04-06 周三</span><em id="whq_todayIncome">¥:1873万</em></a></li>在对应JS文件里调用此方法
/** * 1.将当前日期赋值给日期位置,为了显示日期用 */ document.getElementById('whq_date').innerHTML = getNowFormatDate();效果如图所示
2.连续点击获取到对应日期的数据的方法
首先要发请求,传参数给后台,参数形式是日期纯字符串形式(比如20160522)而不能是之前显示的(2016-05-22)所以我只是把上面的连接符号去掉了而已
/** * 获取当前日期字符串(无'-'),发请求用 */function getNowFormatDateStr(addDayCount) { var day = new Date(); day.setDate(day.getDate() + addDayCount); var Year = 0; var Month = 0; var Day = 0; var CurrentDate = ""; // 初始化时间 Year = day.getFullYear(); Month = day.getMonth() + 1; Day = day.getDate(); CurrentDate += Year; if (Month >= 10 ) { CurrentDate += Month; } else { CurrentDate += "0" + Month; } if (Day >= 10 ) { CurrentDate += Day ; } else { CurrentDate += "0" + Day ; } return CurrentDate; }因为要点击实现日期的加减,所以我用了比较笨的一个但是还比较实用的方法,先定义一个全局变量
/** * 程序入口函数 */$(function() { // 解决点击延迟问题 FastClick.attach(document.body); document.addEventListener("deviceready", function() { // TODO: 在此处添加页面入口逻辑 // 设置全局变量n记录点击前一天,后一天 var n = 0; }给前一天、后一天标签位置绑定id
<!-- 前一天 --><li id="whq_pDayIncomeLeft" class="cell"><a>前一天<em id="whq_pDayIncome">¥:1873万</em></a></li>
<!-- 后一天 --><li id="whq_nextDayIncomeRight" class="cell"><a>后一天<em id="whq_nextDayIncome">¥:1873万</em></a></li>在对应的JS文件里点击时调用此方法
/** 点击前一天 */ $('#whq_pDayIncomeLeft').click(function() { n -= 1; // 将当前日期赋值给日期位置 document.getElementById('whq_date').innerHTML = getNowFormatDate(n); // 获取当前日期字符串(无'-'),发请求用 var pDayDateStr = getNowFormatDateStr(n); /** * 下面是向服务器发网络请求调用的一些方法 * 主要注意:将日期字符串作为参数发请求 */ /** 生产经营日期收入 */ whq_OPER_INCOME(pDayDateStr); /** 生产经营收入与现金流 */ whq_OPER_INCOME_CASHFLOW(pDayDateStr); });
/** 点击后一天 */ $('#whq_nextDayIncomeRight').click(function() { n += 1; // 将当前日期赋值给日期位置 document.getElementById('whq_date').innerHTML = getNowFormatDate(n); // 获取当前日期字符串(无'-'),发请求用 var nextDayDateStr = getNowFormatDateStr(n); /** * 下面是向服务器发网络请求调用的一些方法 * 主要注意:将日期字符串作为参数发请求 */ /** 生产经营日期收入 */ whq_OPER_INCOME(nextDayDateStr); /** 生产经营收入与现金流 */ whq_OPER_INCOME_CASHFLOW(nextDayDateStr); });
至此为止就实现了连续点击获取对应日期的数据,并显示对应的日期
温馨提示:
1.一开始我还有些顾虑,首先后台需要我传字符串类型的日期格式("20160522")这样的,那我JS方法获取到的是什么类型呢?
// 打印一下看看到底是什么类型的数据格式 alert(typeof CurrentDate); return CurrentDate;实践才是检验真理的唯一标准:
2.那么问题又来了,既然是string类型,直接减一能行吗,不行的话可是得先转换成Number类型,然后再转换成string类型才能做减法(加法),因为在iOS里面字符串类型是不能直接和数字做运算的,因为不懂所以冒险尝试了一下,完全没做类型转换,结果如图
感觉JS如此强大,程序员有时候就该偷偷懒的
3.还有个担心,就是现在点击前一天都是-1的获取日期,在iOS里获取昨天的日期是要sinceNow:-24*60*60的
JS里直接-1是巧合,还是靠谱
如果说-1可以实现日期递减,那么当从现在(20160522)减(22)次以后,日期显示(20160500)还是(20160430)呢
如果递减到月初可以显示(20160430)那么(20160430)再减(30)呢,是显示(20160330)还是(20160331)呢,3月份是有31天的呢
带着这些疑问又做了一些测试
事实证明,JS确实非常之强大,完全没有问题
1 0
- JavaScript-获取固定格式日期(2016-05-22)以及"连续"获取前一天、后一天的方法总结
- PHP获取前一天、后一天的日期
- 获取指定日期的后一天或前一天的日期
- java获取指定日期前一天和后一天的日期
- js获取当前日期、前一天、后一天的日期
- 获取前一天,后一天,后两天,三天的日期
- java日期获取前一天和后一天
- java日期获取前一天和后一天
- java日期获取前一天和后一天
- mysql 获取日期前一天 后一天
- 获取当前日期的前一天和后一天
- 获取前一天日期的方法
- 获取前一天日期的方法
- 批处理:如何获取当前日期前一天或者后一天的日期
- java获取当前日期前一天和后一天
- javascript方法动态显示前一天与后一天日期时间
- 获取前一天的日期的方法
- LINUX获取前一天日期的方法
- 117. Populating Next Right Pointers in Each Node II
- 说大学毕业等于失业?你是不是傻!
- Visual Studio 使用技巧, 功能与特性
- tomcat中不同项目共享session数据
- 递归再理解
- JavaScript-获取固定格式日期(2016-05-22)以及"连续"获取前一天、后一天的方法总结
- 不忘初心,再创辉煌。
- 专题三 · 1018
- HDU 4819 二维线段树
- Delphi项目构成之单元文件PAS
- OJ平台汇总
- Android Studio 最详细的 安装使用指南
- poj 3368 Frequent values 线段树
- Program3_P