easyUI datetimebox 自定义显示格式

傷城~ 2022-03-26 08:52 410阅读 0赞

项目里需要显示自定义显示格式,比如只显示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. }
  16. /格式化显示的文本
  17. function formatDateText(date) {
  18. var rainType = rainTypeObj.combobox("getValue");
  19. switch (rainType) {
  20. case '0':
  21. return date.formatDate("yyyy-MM-dd hh:mm");
  22. break;
  23. case '1':
  24. return date.formatDate("yyyy-MM-dd hh");
  25. break;
  26. case '2':
  27. return date.formatDate("yyyy-MM-dd");
  28. break;
  29. case '3':
  30. return date.formatDate("yyyy-MM");
  31. break;
  32. case '4':
  33. return date.formatDate("yyyy-MM");
  34. break;
  35. case '5':
  36. return date.formatDate("yyyy");
  37. break;
  38. default:
  39. break;
  40. }
  41. }
  42. //为date类添加一个format方法
  43. //yyyy 年
  44. //MM 月
  45. //dd 日
  46. //hh 小时
  47. //mm 分
  48. //ss 秒
  49. //qq 季度
  50. //S 毫秒
  51. Date.prototype.formatDate = function (format) //author: meizz
  52. {
  53. var o = {
  54. "M+": this.getMonth() + 1, //month
  55. "d+": this.getDate(), //day
  56. "h+": this.getHours(), //hour
  57. "m+": this.getMinutes(), //minute
  58. "s+": this.getSeconds(), //second
  59. "q+": Math.floor((this.getMonth() + 3) / 3), //quarter
  60. "S": this.getMilliseconds() //millisecond
  61. }
  62. if (/(y+)/.test(format)) format = format.replace(RegExp.$1,
  63. (this.getFullYear() + "").substr(4 - RegExp.$1.length));
  64. for (var k in o) if (new RegExp("(" + k + ")").test(format))
  65. format = format.replace(RegExp.$1,
  66. RegExp.$1.length == 1 ? o[k] :
  67. ("00" + o[k]).substr(("" + o[k]).length));
  68. return format;
  69. }

0_1331106990X5TJ.gif

欢迎关注公众号:程序员面试经验分享(jobbible)

70

发表评论

表情:
评论列表 (有 0 条评论,410人围观)

还没有评论,来说两句吧...

相关阅读