You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

120 lines
4.0 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

// 从2018-09-01 15:30:27 中提取出 15:30
var hmTimeFrom = function (dateStr) {
return dateStr.substring(11, 16);
}; // 算出2个dateStr间的时间间隔例如 2018-09-01 15:30:27 到 2018-09-02 03:28:09,中间相差'd天h小时m分钟'
var intervalBetween = function (startDateStr, endDateStr) {
var startDate = dateFromDateStr(startDateStr);
var endDate = dateFromDateStr(endDateStr);
var startTimestamp = startDate.getTime();
var endTimestamp = endDate.getTime();
var deltaTimestamp = Math.floor((endTimestamp - startTimestamp) / 1000);
var days = Math.floor(deltaTimestamp / (24 * 3600));
var hours = Math.floor((deltaTimestamp - days * 24 * 3600) / 3600);
var minutes = Math.floor((deltaTimestamp - days * 24 * 3600 - hours * 3600) / 60);
var ret = '';
if (days > 0) ret += days + 'd';
if (hours > 0) ret += hours + 'h';
if (minutes > 0) ret += minutes + 'm';
return ret;
}; // 算出24小时内的2个时间间隔例如 12:00 到 15:30,中间相差'h小时m分钟'
var intervalBetween24h = function (startDateStr, endDateStr, isCN) {
var startComponents = startDateStr.split(':');
var endComponents = endDateStr.split(':');
var startH = startComponents[0];
var startM = startComponents[1];
var endH = endComponents[0];
var endM = endComponents[1];
var deltaTimestamp = 0;
if (endH > startH || endH == startH && endM > startM) {
// 不跨天
// Start
var startDate = getDate(2018, 1, 1, startH, startM, 0);
var startTimestamp = startDate.getTime(); // End
var endDate = getDate(2018, 1, 1, endH, endM, 0);
var endTimestamp = endDate.getTime(); // delta
deltaTimestamp = Math.floor((endTimestamp - startTimestamp) / 1000);
} else {
// 跨天
// Start
var startDate = getDate(2018, 1, 1, startH, startM, 0);
var startTimestamp = startDate.getTime(); // End
var endDate = getDate(2018, 1, 2, endH, endM, 0);
var endTimestamp = endDate.getTime(); // delta
deltaTimestamp = Math.floor((endTimestamp - startTimestamp) / 1000);
} // 拼接返回值
var days = Math.floor(deltaTimestamp / (24 * 3600));
var hours = Math.floor((deltaTimestamp - days * 24 * 3600) / 3600);
var minutes = Math.floor((deltaTimestamp - days * 24 * 3600 - hours * 3600) / 60);
var ret = '';
if (isCN) {
if (days > 0) ret += days + '天';
if (hours > 0) ret += hours + '小时';
if (minutes > 0) ret += minutes + '分钟';
} else {
if (days > 0) ret += days + 'd';
if (hours > 0) ret += hours + 'h';
if (minutes > 0) ret += minutes + 'm';
}
return ret;
}; // dateStr转Date类型
var dateFromDateStr = function (dateStr) {
var components = dateStr.split(' ');
var dateComponents = components[0].split('-');
var timeComponents = components[1].split(':');
var totalComponents = dateComponents.concat(timeComponents);
return getDate(parseInt(totalComponents[0]), parseInt(totalComponents[1]) - 1, parseInt(totalComponents[2]), parseInt(totalComponents[3]), parseInt(totalComponents[4]), parseInt(totalComponents[5]), 0);
}; // 判断是否跨天, 例如 12:00 到 11:30 为跨天
var isCrossDay = function (startDateStr, endDateStr) {
var startComponents = startDateStr.split(':');
var endComponents = endDateStr.split(':');
var startH = startComponents[0];
var startM = startComponents[1];
var endH = endComponents[0];
var endM = endComponents[1];
return endH < startH || endH == startH && endM < startM;
};
var numberUtil = {
numberFormat: function (value) {
var v = parseFloat(value); //IntString
return v.toFixed(2);
}
};
var rorderStatusDic = function (status) {
var orderStatusDic = {
'0': '',
'10': '',
'20': '',
'100': ''
};
return orderStatusDic[status];
};
module.exports = {
hmTimeFrom: hmTimeFrom,
intervalBetween: intervalBetween,
intervalBetween24h: intervalBetween24h,
isCrossDay: isCrossDay,
numberFormat: numberUtil.numberFormat,
//
rorderStatusDic: rorderStatusDic
};