一、问题:

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

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

二、解决:

  1、取月末:

  (1)强制取值:

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

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

function getPreMonthLastDay() {

    // debugger;
var date = new Date();
var year = date.getFullYear().toString();
var month = (date.getMonth()).toString();
var temp = new Date(year,month,0);
day = (temp.getDate()).toString(); if(month.length == 1) month = "0" + month;
if(day.length == 1) day = "0" + day; return year + "-" + month + "-" + day; }

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

//初始化日期
var firstLoad = 0;
function initReportDateFun(rtypeV){
$("#reportDate").datebox({
width:150,
required:false,
onSelect:function(date){
//var date = $("#reportDate").datebox("getValue");
var selectValue = $('#reportFileType').combobox("getValue");
var tvalue = "";
if(selectValue == "Y"){
tvalue = fmtReportDate(date,"yyyy");
}else if(selectValue == "M"){
tvalue = fmtReportDate(date,"yyyy-MM");
}else{
tvalue = fmtReportDate(date,"yyyy-MM-dd");
}
$("#reportDate").datebox("setText",tvalue);
},
parser:function(date){
var t = Date.parse(date);
if (!isNaN(t)){
return new Date(t);
} else {
return new Date();
}
}
}); // var selectValue = $('#reportFileType').combobox("getValue");
if(rtypeV == "Y"){
$("#reportDate").datebox("setText",fmtReportDate(new Date(),"yyyy"));
}else if(rtypeV == "M"){
$("#reportDate").datebox("setText",fmtReportDate(new Date(),"yyyy-MM"));
}else{
if(firstLoad>0){
$("#reportDate").datebox("setText",fmtReportDate(new Date(),"yyyy-MM-dd"));
}else{
$("#reportDate").datebox("setText",getPreMonthLastDay());
firstLoad ++;
}
}
/*if(firstLoad==0){
clearVal();
/!*var curr_time = new Date();
var strDate = curr_time.getFullYear()+"-";
strDate += curr_time.getMonth()+1+"-";
strDate += curr_time.getDate();
$("#reportDate").datebox("setValue", strDate);
initTxtOrg();*!/
firstLoad++;
}else{*/
initTxtOrg();
init_report_detail_tab();
initStatisTable();
//}
}

  出现的问题:

    之前没有加【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. Python定制类(进阶6)

    转载请标明出处: http://www.cnblogs.com/why168888/p/6411919.html 本文出自:[Edwin博客园] Python定制类(进阶6) 1. python中什么 ...

  2. Mac下的mongodb安装

    mac下的mongodb安装主要有两种方式,一是手工安装,需在官网下载源文件,二是通过homebrew,至于homebrew不做介绍.既然是Mac系统下,我认为直接通过homebrew安装最好,省事还 ...

  3. 2016-2017-20155329 《Java程序设计》第9周学习总结

    学号 2016-2017-20155329 <Java程序设计>第9周学习总结 教材学习内容总结 学习目标 了解JDBC架构 掌握JDBC架构 掌握反射与ClassLoader 了解自定义 ...

  4. ChakraCore ,Net托管编程

    前言 有些有着复杂业务逻辑的应用程序,需要为用户提供高度自定化的功能.比如像Word中的宏,当然可以自己设计一套简易的脚本解析引擎,但考虑通用性,成熟度,其实选择一款JS脚本引擎,直接嵌入到应用系统中 ...

  5. Web—07-JQuery

    jquery是一个函数库,一个js文件,页面用script标签引入这个js文件就可以使用. <script type="text/javascript" src=" ...

  6. Web | JavaScript的提升机制

    作用对象: 函数和变量的声明. 作用效果: 会将其声明提升到其所在的作用域的最顶端.函数会优先于变量的声明. //函数的提升优于变量的提升 test(); var a=2; function test ...

  7. java基础需要掌握的内容

    一.Java的基本程序设计结构 二.对象与类 三.继承 四.接口.lambda表达式与内部类 五.异常,断言与日志 六.泛型程序设计 七.集合 八.并发(线程) 九.输入与输出(IO流) 十.网络 十 ...

  8. jquery中的 append , after , prepend , before 区别

    jQuery append() 方法在被选元素的结尾插入内容. jQuery prepend() 方法在被选元素的开头插入内容. jQuery after() 方法在被选元素之后插入内容. jQuer ...

  9. 基于 HTML5 Canvas 的 3D 渲染引擎构建生产管控系统

    前言 大家好,老郑我又回来了.这一期为大家带来一个非常好玩的 demo,我们制作一套自己的 3D 管道控制系统,运用了( http://www.hightopo.com )HT 的 Graph3dVi ...

  10. 快速认识LinkIt 7697开发板

    LinkIt 7697是一款多功能且价格亲民的开发板,可用来连接网络或你的各项装置,同时提供Wi-Fi及蓝芽两种联机功能.此开发板采用MediaTek MT7697芯片,比起其他类似的Wi-Fi/蓝芽 ...