//dataTimeStr 的格式为 "2020年09月04日 08时" (yyyy年MM月dd日 HH时 )
dateUtils.formatDate(
dateUtils.calculateDate(
dateUtils.parseDate(dataTimeStr, "yyyy年MM月dd日 HH时"),
"hh", "024"),
"yyyy年MM月dd日 HH时");
//dateUtils
/*数字前补0*/
prefixInteger: function (num, length) {
return (Array(length).join('0') + num).slice(-length);
},
//格式化日期 date: Fri Sep 04 2020 08:00:00 GMT+0800 (中国标准时间)
formatDate: function (date, fmt) {
date = date == undefined ? new Date() : date;
date = typeof date == 'number' ? new Date(date) : date;
fmt = fmt || 'yyyy-MM-dd HH:mm:ss';
var obj =
{
'y': date.getFullYear(),
'M': date.getMonth() + 1,
'd': date.getDate(),
'q': Math.floor((date.getMonth() + 3) / 3),
'w': date.getDay(),
'H': date.getHours(),
'h': date.getHours() % 12 == 0 ? 12 : date.getHours() % 12,
'm': date.getMinutes(),
's': date.getSeconds(),
'S': date.getMilliseconds()
};
var week = ['天', '一', '二', '三', '四', '五', '六'];
for (var i in obj) {
fmt = fmt.replace(new RegExp(i + '+', 'g'), function (m) {
var val = obj[i] + '';
if (i == 'w') return (m.length > 2 ? '星期' : '周') + week[val];
for (var j = 0, len = val.length; j < m.length - len; j++) val = '0' + val;
return m.length == 1 ? val : val.substring(val.length - m.length);
});
}
return fmt;
},
//返回的时间格式为: Fri Sep 04 2020 08:00:00 GMT+0800 (中国标准时间)
parseDate: function (str, fmt) {
fmt = fmt || 'yyyy-MM-dd';
var obj = {y: 0, M: 1, d: 0, H: 0, h: 0, m: 0, s: 0, S: 0};
fmt.replace(/([^yMdHmsS]*?)(([yMdHmsS])\3*)([^yMdHmsS]*?)/g, function (m, $1, $2, $3, $4, idx, old) {
str = str.replace(new RegExp($1 + '(\\d{' + $2.length + '})' + $4), function (_m, _$1) {
obj[$3] = parseInt(_$1);
return '';
});
return '';
});
obj.M--;
var date = new Date(obj.y, obj.M, obj.d, obj.H, obj.m, obj.s);
if (obj.S !== 0) date.setMilliseconds(obj.S);
return date;
},
calculateDate: function (date, type, num) {
date = date == undefined ? new Date() : date;
date = typeof date == 'number' ? new Date(date) : date;
var times = date.getTime();
switch (type) {
case 'dd':
times = times + num * 24 * 60 * 60 * 1000;
break;
case 'hh':
times = times + num * 60 * 60 * 1000;
break;
case 'mm':
times = times + num * 60 * 1000;
break;
case 'ss':
times = times + num * 1000;
break;
default:
times = times;
}
return new Date(times);
},
getIntervalHour: function (startDate, endDate) {
var ms = endDate.getTime() - startDate.getTime();
if (ms < 0) return 0;
return Math.floor(ms / 1000 / 60 / 60);
},

网友评论