@pisell/pisellos
Version:
一个可扩展的前端模块化SDK框架,支持插件系统
53 lines (46 loc) • 1.56 kB
JavaScript
import dayjs from 'dayjs';
/**
* 从日期时间字符串中提取时间部分
* @param dateTime 日期时间字符串,格式如 "2024-01-01 10:00:00"
* @returns 时间字符串,格式如 "10:00"
*/
export function extractTimeFromDateTime(dateTime) {
if (!dateTime) return null;
// 使用 dayjs 解析日期时间
var date = dayjs(dateTime);
if (!date.isValid()) {
console.warn("[TimeUtils] \u65E0\u6548\u7684\u65E5\u671F\u65F6\u95F4\u683C\u5F0F: ".concat(dateTime));
return null;
}
// 返回 HH:mm 格式的时间
return date.format('HH:mm');
}
/**
* 将时间字符串转换为分钟数(用于排序)
* @param timeStr 时间字符串,格式如 "10:00" 或 "14:30"
* @returns 从00:00开始的分钟数
*/
export function timeStringToMinutes(timeStr) {
if (!timeStr) return 0;
// 使用 dayjs 解析时间字符串
// 由于只有时间没有日期,我们添加一个固定日期来解析
var date = dayjs("2000-01-01 ".concat(timeStr), 'YYYY-MM-DD HH:mm');
if (!date.isValid()) {
console.warn("[TimeUtils] \u65E0\u6548\u7684\u65F6\u95F4\u683C\u5F0F: ".concat(timeStr));
return 0;
}
// 计算从00:00开始的分钟数
return date.hour() * 60 + date.minute();
}
/**
* 对时间点数组进行排序
* @param timePoints 时间点数组
* @returns 排序后的时间点数组
*/
export function sortTimePoints(timePoints) {
return timePoints.sort(function (a, b) {
var timeA = timeStringToMinutes(a);
var timeB = timeStringToMinutes(b);
return timeA - timeB;
});
}