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. Inception——Going deeper with convolutions

    1. 摘要 作者提出了一个代号为 Inception 的卷积神经网络架构,这也是作者在 2014 年 ImageNet 大规模视觉识别挑战赛中用于分类和检测的新技术. 通过精心的设计,该架构提高了网络 ...

  2. Python列表解析

    列表解析 根据已有列表,高效创建新列表的方式. 列表解析是Python迭代机制的一种应用,它常用于实现创建新的列表,因此用在[]中. 语法: [expression for iter_val in i ...

  3. 第九次psp例行报告

    本周psp 本周进度条 代码累积折线图 博文字数累积折线图 饼状图

  4. Alpha阶段展示报告

    一.团队成员简介与个人博客地址 江昊,项目经理 http://www.cnblogs.com/haoj/ 王开,后端开发 http://www.cnblogs.com/wk1216123/ 王春阳,后 ...

  5. scanf() scanf_s() 区别

    写博原因:这几天由于小学期的缘故,接触到了好多C代码,在VS2013中编译的时候,遇到了如下问题: 错误 1 error C4996: 'scanf': This function or variab ...

  6. Task 6.4 冲刺Two之站立会议7

    今天又重新对服务器部分加以分析改进,由于用户登录时必须得连接服务器,所以作为整个软件最核心的服务器的部分,只有保障了这个内容才能保证软件的正常运行.

  7. 1001.A+B Format (20) 解题

    代码入口(https://github.com/NSDie/object-oriented) 这题的解题思路我有两个: 第一个是两个数字相加然后判断位数,因为题目限制了范围1000000的绝对值以内嘛 ...

  8. angularJS1笔记-(16)-模块里的constant、value、run

    index.html: <!DOCTYPE html> <html lang="en"> <head> <meta charset=&qu ...

  9. 简单复利计算c语言实现

    #include<stdio.h>#include<math.h>float i; //利率 float p; //期初金额 float F; //未来值 int n; //期 ...

  10. 用户数以及psp

    小组名称:好好学习 小组成员:林莉  王东涵   胡丽娜   宫丽君 项目名称: 记账本 alpha发布48小时以后用户数如何,是否达到预期目标,为什么,是否需要改进,如何改进(或理性估算). 首先我 ...