http://blog.csdn.net/littlewolf766/article/details/7329123

项目里需要显示自定义显示格式,比如只显示yyy,yyyy-mm,yyyy-mm-dd等格式。直接设置formatter参数的话,总是报错。用firefox调试后发现,好像在设置新的日期时

datetimebox控件会调用默认的parser指定的函数,把字符串转为日期格式。由于默认的只认"yyyy-MM-dd hh:mm:ss"格式(可以是其它分隔符,并非一定要是'-'),所以如果formatter函数返回的不是这个格式,会报错。

下面是我自己的实现方式:

datetimebox 设置:

  1. //加载日期控件
  2. function loadDate() {
  3. startDTObj = $("#startDate");
  4. endDTObj = $("#endDate");
  5. startDTObj.datetimebox({
  6. showSeconds:false,
  7. formatter: formatDateText,
  8. parser: parseDate
  9. });
  10. endDTObj.datetimebox({
  11. showSeconds:false,
  12. formatter: formatDateText,
  13. parser: parseDate
  14. });
  15. }
  1. /格式化显示的文本
  2. function formatDateText(date) {
  3. var rainType = rainTypeObj.combobox("getValue");
  4. switch (rainType) {
  5. case '0':
  6. return date.formatDate("yyyy-MM-dd hh:mm");
  7. break;
  8. case '1':
  9. return date.formatDate("yyyy-MM-dd hh");
  10. break;
  11. case '2':
  12. return date.formatDate("yyyy-MM-dd");
  13. break;
  14. case '3':
  15. return date.formatDate("yyyy-MM");
  16. break;
  17. case '4':
  18. return date.formatDate("yyyy-MM");
  19. break;
  20. case '5':
  21. return date.formatDate("yyyy");
  22. break;
  23. default:
  24. break;
  25. }
  26. }

本菜鸟写的,由于js,正则不是很熟,写得不好。月,日默认使用‘01’,时间部分默认使用‘00’

  1. //把时间格式字符串转化为时间
  2. //如下格式
  3. //2006
  4. //2006-01
  5. //2006-01-01
  6. //2006-01-01 12
  7. //2006-01-01 12:12
  8. //2006-01-01 12:12:12
  9. function parseDate(dateStr) {
  10. var regexDT = /(\d{4})-?(\d{2})?-?(\d{2})?\s?(\d{2})?:?(\d{2})?:?(\d{2})?/g;
  11. var matchs = regexDT.exec(dateStr);
  12. var date = new Array();
  13. for (var i = 1; i < matchs.length; i++) {
  14. if (matchs[i]!=undefined) {
  15. date[i] = matchs[i];
  16. } else {
  17. if (i<=3) {
  18. date[i] = '01';
  19. } else {
  20. date[i] = '00';
  21. }
  22. }
  23. }
  24. return new Date(date[1], date[2]-1, date[3], date[4], date[5],date[6]);
  25. }

网上找的别人写的格式化日期的方法,很好用

  1. //为date类添加一个format方法
  2. //yyyy 年
  3. //MM 月
  4. //dd 日
  5. //hh 小时
  6. //mm 分
  7. //ss 秒
  8. //qq 季度
  9. //S  毫秒
  10. Date.prototype.formatDate = function (format) //author: meizz
  11. {
  12. var o = {
  13. "M+": this.getMonth() + 1, //month
  14. "d+": this.getDate(),    //day
  15. "h+": this.getHours(),   //hour
  16. "m+": this.getMinutes(), //minute
  17. "s+": this.getSeconds(), //second
  18. "q+": Math.floor((this.getMonth() + 3) / 3),  //quarter
  19. "S": this.getMilliseconds() //millisecond
  20. }
  21. if (/(y+)/.test(format)) format = format.replace(RegExp.$1,
  22. (this.getFullYear() + "").substr(4 - RegExp.$1.length));
  23. for (var k in o) if (new RegExp("(" + k + ")").test(format))
  24. format = format.replace(RegExp.$1,
  25. RegExp.$1.length == 1 ? o[k] :
  26. ("00" + o[k]).substr(("" + o[k]).length));
  27. return format;
  28. }

完成后效果:

easyUI datetimebox 自定义显示格式的更多相关文章

  1. Js:消息弹出框、获取时间区间、时间格式、easyui datebox 自定义校验、表单数据转化json、控制两个日期不能只填一个

    (function ($) { $.messageBox = function (message) { $.messager.show({ title:'消息框提示', msg:message, sh ...

  2. 雷林鹏分享:jQuery EasyUI 窗口 - 自定义窗口工具栏

    jQuery EasyUI 窗口 - 自定义窗口工具栏 默认情况下,窗口(window)有四个工具:collapsible.minimizable.maximizable 和 closable.比如我 ...

  3. 雷林鹏分享:jQuery EasyUI 窗口 - 自定义带有工具条和按钮的对话框

    jQuery EasyUI 窗口 - 自定义带有工具条和按钮的对话框 您可以创建一个带有工具栏(toolbar)和按钮(button)的对话框(dialog),可以从 HTML 标记创建.这个教程描述 ...

  4. 表单(中)-EasyUI Combogrid 组合网格、EasyUI Numberbox 数字框、EasyUI Datebox 日期框、EasyUI Datetimebox 日期时间框、EasyUI Calendar 日历

    EasyUI Combogrid 组合网格 扩展自 $.fn.combo.defaults 和 $.fn.datagrid.defaults.通过 $.fn.combogrid.defaults 重写 ...

  5. EasyUI Datagrid 自定义列、Foolter及单元格编辑

    1:自定义列,包括 Group var head1Array = []; head1Array.push({ field: 'Id', title: 'xxxx', rowspan: 2 }); he ...

  6. easyui DateTimeBox OK

    一.datetimebox   ok按钮没有点击事件,但是可以通过onSelect事件模拟出“点击了ok按钮一样的效果”,我的代码: 关键: 0,理解DateTimeBox控件,这个控件是由DateB ...

  7. easyui datagrid自定义操作列

    通过formatter方法给Jquery easyui 的datagrid 每行增加操作链接 我们都知道Jquery的EasyUI的datagrid可以添加并且自定义Toolbar, 这样我们选择一行 ...

  8. easyui datagrid自定义按钮列,即最后面的操作列(转)

    做项目的时候因为需求,要在表格的最后添加一列操作列,easyUI貌似没有提供这种功能,不过没关系,我们可以自定义来实现 版本:jQuery easyUI 1.3.2 这里我的实现方式是采用HTML形式 ...

  9. easyui之自定义字体图标(鼠标覆盖时切换颜色)

    项目要求是自定义字体图标,使用easyui框架结构,众所周知easyui强功能弱样式,字体图标其实就是一张图片.要达到切换图标颜色的效果,要么就是有两套图,使用js控制.但是我这个人比较懒,不喜欢做复 ...

随机推荐

  1. 半年收入超2亿RMB 独立游戏开发者的艰苦创业路

    一款叫做<监狱建筑师>的模拟经营游戏,目前在Steam平台获得了3000万美元(近2亿元)以上的收入.这款游戏由英国独立工作室Introversion Software发布,而团队最困难的 ...

  2. maven摘除jar包中配置文件

    <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-p ...

  3. Scrum立会报告+燃尽图(Final阶段第三次)

    此作业要求参见:https://edu.cnblogs.com/campus/nenu/2018fall/homework/2481 项目地址:https://coding.net/u/wuyy694 ...

  4. 实验三:敏捷开发与XP实践

    Java实验三报告 一.   实验内容 (一)敏捷开发与XP 内容:1.敏捷开发(Agile Development)是一种以人为核心.迭代.循序渐进的开发方法. 2.极限编程(eXtreme Pro ...

  5. HDU 4418 Time travel 期望dp+dfs+高斯消元

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4418 Time travel Time Limit: 2000/1000 MS (Java/Othe ...

  6. 校园跳蚤市场-Sprint计划

    一.现状 小组成员初步了解所做项目的大致内容,需要时间一步一步分析和规划. 二.部分需求索引卡 第一个阶段完成项目的其中一个模块(商品信息模块). 三.任务认领 产品负责人:林海信 Master:何武 ...

  7. C++内存布局(1)-让new出的两个变量在堆上的地址连续

    大家都知道栈的地址按照从高到低的顺序增长的, 而堆的地址是按照从底到高的顺序增长的. ); ); cout<<"n1,n2所指的地址:" << n1 < ...

  8. 软工网络15团队作业8——Beta阶段敏捷冲刺(day1)

    第 1 篇 Scrum 冲刺博客 1. 介绍小组新加入的成员,Ta担任的角色 --给出让ta担当此角色的理由 小组新加入的成员:3085叶金蕾 担任的角色:测试/用户体验/开发 理由:根据小组讨论以及 ...

  9. 通用的将Excel导入数据集的方法

    http://blog.csdn.net/baronyang/article/details/7048563

  10. cmd命令行安装,删除Windows证书(certgmr的简单使用)

    在管理证书的时候需要用到certmgr工具. 在cmd中执行certmgr会弹出证书管理的工具,但是不能用命令行去管理证书,需要额外的工具 cermgr.exe:下载链接 https://pan.ba ...