一、问题:

  在web项目里有很多时候需要使用日期控件来完成相关的功能,但是日期控件的日期格式又和我们的需求不符

  那么,就需要我们来自定义日期的格式完成需求

二、解决:

  1、取月末:

  (1)强制取值:

  1. //判断每个月最后一天
  2. function lastDay(cYear,cMouth){
  3. var year;
  4. var mouth;
  5. if (cYear != "" && cMouth!="") {
  6. year=cYear;
  7. mouth=cMouth;
  8. } else {
  9. var date =new Date();
  10. year=date.getFullYear();//获取年份
  11. mouth=date.getMonth() + 1;
  12. }
  13. var days;
  14. if (mouth==2) {
  15. //当月份为二月时,根据闰年还是非闰年判断天数
  16. if (year % 400 == 0 || year % 4 == 0 && year % 100 != 0 ) {
  17. days=29;
  18. }else{
  19. days=28;
  20. };
  21. }else if (mouth == 1 || mouth == 3 || mouth == 5 || mouth == 7 || mouth == 8 || mouth == 10 || mouth == 12) {
  22. //月份为:1,3,5,7,8,10,12 时,为大月.则天数为31
  23. days= 31;
  24. }else {
  25. //其他月份,天数为:30.
  26. days= 30;
  27. }
  28. return days;
  29. };

  (2)使用js日期函数来求:原理涉及到js日期函数的顺序加载问题,先加一,后减一

  1. function getPreMonthLastDay() {
  2.  
  3. // debugger;
  4. var date = new Date();
  5. var year = date.getFullYear().toString();
  6. var month = (date.getMonth()).toString();
  7. var temp = new Date(year,month,0);
  8. day = (temp.getDate()).toString();
  9.  
  10. if(month.length == 1) month = "0" + month;
  11. if(day.length == 1) day = "0" + day;
  12.  
  13. return year + "-" + month + "-" + day;
  14.  
  15. }

  2、日期位数不定:(区分年报,月报,日报)

  1. //初始化日期
  2. var firstLoad = 0;
  3. function initReportDateFun(rtypeV){
  4. $("#reportDate").datebox({
  5. width:150,
  6. required:false,
  7. onSelect:function(date){
  8. //var date = $("#reportDate").datebox("getValue");
  9. var selectValue = $('#reportFileType').combobox("getValue");
  10. var tvalue = "";
  11. if(selectValue == "Y"){
  12. tvalue = fmtReportDate(date,"yyyy");
  13. }else if(selectValue == "M"){
  14. tvalue = fmtReportDate(date,"yyyy-MM");
  15. }else{
  16. tvalue = fmtReportDate(date,"yyyy-MM-dd");
  17. }
  18. $("#reportDate").datebox("setText",tvalue);
  19. },
  20. parser:function(date){
  21. var t = Date.parse(date);
  22. if (!isNaN(t)){
  23. return new Date(t);
  24. } else {
  25. return new Date();
  26. }
  27. }
  28. });
  29.  
  30. // var selectValue = $('#reportFileType').combobox("getValue");
  31. if(rtypeV == "Y"){
  32. $("#reportDate").datebox("setText",fmtReportDate(new Date(),"yyyy"));
  33. }else if(rtypeV == "M"){
  34. $("#reportDate").datebox("setText",fmtReportDate(new Date(),"yyyy-MM"));
  35. }else{
  36. if(firstLoad>0){
  37. $("#reportDate").datebox("setText",fmtReportDate(new Date(),"yyyy-MM-dd"));
  38. }else{
  39. $("#reportDate").datebox("setText",getPreMonthLastDay());
  40. firstLoad ++;
  41. }
  42. }
  43. /*if(firstLoad==0){
  44. clearVal();
  45. /!*var curr_time = new Date();
  46. var strDate = curr_time.getFullYear()+"-";
  47. strDate += curr_time.getMonth()+1+"-";
  48. strDate += curr_time.getDate();
  49. $("#reportDate").datebox("setValue", strDate);
  50. initTxtOrg();*!/
  51. firstLoad++;
  52. }else{*/
  53. initTxtOrg();
  54. init_report_detail_tab();
  55. initStatisTable();
  56. //}
  57. }

  出现的问题:

    之前没有加【parser】函数,会出现一个问题,选择5月份的日期后,日期框还是保留【今天】,日期和框显示的数据不一致

    可能是由于处理时间的时候会把数据作文文本显示,但是控件并不能解析这个字符串而让面板和显示的字符串日期保持一致

    使用【parser】函数后,每次加载完成,会把字符串解析成一个日期函数以供控件加载初始化数据

js日期控件遇到的问题的更多相关文章

  1. 利用js日期控件重构WEB功能

    开发需求:网页中的日期部门(注册页面和查询条件)都用js日期控件重写 页面一:更新员工页面 empUpdate.jsp 中增加 onfocus 事件 入职日期:<input id="h ...

  2. JSP JS 日期控件的下载、使用及注意事项

    网上流行的时间日期控件比较多,个人觉得My97DatePicker的日期控件不错,值得推荐. 具体的使用过程如下: 1.下载My97DatePicker.rar或 My97DatePickerBeta ...

  3. js日期控件demo

    最近在钻研前端,写了个日期控件,内涵代码注释,希望能帮助到大家~ 1.html代码 <!DOCTYPE html> <html xmlns="http://www.w3.o ...

  4. js 日期控件 可以显示为和历

    日期控件的js <!-- /** * Calendar * @param beginYear 1990 * @param endYear 2010 * @param language 0(zh_ ...

  5. js日期控件

    My97日期控件 官方网站 My97 Datepicker Home   http://www.my97.net/

  6. layDate1.0正式公布,您一直在寻找的的js日期控件

    你是时候换一款日期控件了,而layDate很愿意和您成为工作伙伴.她正致力于成为全球最高大上的web日期支撑,为国内外全部从事web应用开发的同仁提供力所能及的动力.她基于原生JavaScript精心 ...

  7. 推荐几款开源的js日期控件

    做为一个正规的网站,经常需要一些日期或时间的筛选,所以我们今天就推荐二十多款javascript的js日期/时间筛选插件.个个经典,绝对有你需要的. My97DatePicker ,国人开发的一款js ...

  8. js 日期控件laydate使用

    官网  http://sentsin.com/layui/laydate/ 1. 下载官网上的压缩包,解压后只需要复制laydate 文件夹到你的项目中; 2. 在页面引入  <script t ...

  9. WebFrom 的js日期控件

    1.WdatePicker.js /* * My97 DatePicker 4.7 Release * License: http://www.my97.net/dp/license.asp */ v ...

随机推荐

  1. BZOJ 1270 雷涛的小猫 dp

    题目链接: https://www.lydsy.com/JudgeOnline/problem.php?id=1270 题目大意: 雷涛的小猫雷涛同学非常的有爱心,在他的宿舍里,养着一只因为受伤被救助 ...

  2. 1、Python代码初识

    由于python2.7版本默认使用的是ASCII码,必须在编写前加入两行代码,表示使用UTF-8码. #!/usr/bin/python # -*- coding:utf-8 -*- print('你 ...

  3. 面向对象的JavaScript --- 封装

    面向对象的JavaScript --- 封装 封装 封装的目的是将信息隐藏.一般而言,我们讨论的封装是封装数据和封装实现.真正的封装为更广义的封装,不仅包括封装数据和封装实现,还包括封装类型和封装变化 ...

  4. cocos2d::CCFileUtils::sharedFileUtils()->getFileData(szFile, "r", &bufferSize) 不同平台返回值不一样

    string pathKey = CCFileUtils::sharedFileUtils()->fullPathForFilename(fileName); unsigned char* pB ...

  5. [Java123] Java中的System.exit

    参考:http://www.cnblogs.com/xwdreamer/archive/2011/01/07/2297045.html System.exit(int  status) 方法 java ...

  6. ionic 入门创建第一个应用demo

    一.ionic卸载 1.清除旧版本的ionic框架 npm uninstall -g ionic npm uninstall -g cordova npm cache clear npm cache ...

  7. week9:Recommender Systems

    Collaborative  filtering 的原理不是很理解? xi   是每一步电影的特征向量,表示浪漫/动作

  8. CSU - 1581 Clock Pictures (KMP的变形题,难想到)

    题目链接: http://acm.csu.edu.cn/csuoj/problemset/problem?pid=1581 题目意思:告诉你现在有两个钟,现在两个钟上面都有n个指针,告诉你指针的位置, ...

  9. windows下nginx访问web目录提示403 Forbidden

    在windows下 http服务器nginx时,访问web目录提示403 Forbidden,首先需要了解nginx出现403错误是什么意思: 403 Forbidden表示你在请求一个资源文件但是n ...

  10. .Net core 使用NPOI 直接导入Excel到数据库(即不先将Excel保存到服务器再读取文件到数据库)

    /// <summary> /// 导入信息 /// </summary> /// <param name="file"></param& ...