13-时间相关
Day.js中文网: https://dayjs.fenxianglu.cn/
原生JS
日期格式化
js
const formattedDate = new Date().toLocaleString().replace(/\//g, '-');
console.log(formattedDate); // 输出: 2024-10-30 21:01:25
// new Date().toLocaleString() => 2024/10/30 21:01:25
日期初始化
js
const date = new Date('2024-10-30T09:51:52.623Z');
const date = new Date(1730293175000);
const date = new Date('2024-10-30 21:04:28');
const date = new Date('2024/10/30 21:02:16');
Day.js
Day.js的支持的单位列表,各个传入的单位对大小写不敏感,支持缩写和复数。 但是缩写是区分大小写的。
单位 | 缩写 | 详情 |
---|---|---|
day | d | 星期几 (星期天0,星期六6) |
week | w | 一年中的第几周 |
quarter | Q | 季度 |
month | M | 月份 (一月 0, 十二月 11) |
year | y | 年 |
hour | h | 时 |
minute | m | 分 |
second | s | 秒 |
millisecond | ms | 毫秒 |
字符串格式化
js
import dayjs from 'dayjs';
// 示例日期字符串
const dateString = '2023-12-01 12:22:02';
// 使用 dayjs 解析 日期字符串 => Date
const date = dayjs(dateString,'YYYY-MM-DD HH:mm:ss');
// 格式化日期
const formattedDate = date.format('YYYY-MM-DD'); // YYYY-MM-DD HH:mm:ss
console.log(formattedDate); // 输出 "2023-12-01"
Date转字符串
js
import dayjs from 'dayjs';
// 创建一个 Date 对象
const currentDate = new Date();
// 使用 dayjs 将 Date 对象格式化为字符串
const formattedDate = dayjs(currentDate).format('YYYY-MM-DD');
console.log(formattedDate); // 输出类似 "2024-09-16"
日期相差天数
js
import dayjs from 'dayjs';
// 创建两个 Date 对象
const startDate = new Date('2024-09-16T18:30:00');
const endDate = new Date('2024-09-20T20:45:30');
// 计算两个日期之间的差异
function calculateDifference(startDate, endDate) {
const start = dayjs(startDate);
const end = dayjs(endDate);
// 计算相差的天数
const daysDiff = end.diff(start, 'day');
// 计算相差的小时数
const hoursDiff = end.diff(start, 'hour');
// 计算相差的分钟数
const minutesDiff = end.diff(start, 'minute');
// 计算相差的秒数
const secondsDiff = end.diff(start, 'second');
return {
days: daysDiff,
hours: hoursDiff,
minutes: minutesDiff,
seconds: secondsDiff
};
}
// 格式化输出
function formatDifference(diffResult) {
return `相差 ${diffResult.days} 天 ${diffResult.hours % 24} 小时 ${diffResult.minutes % 60} 分钟 ${diffResult.seconds % 60} 秒`;
}
// 测试函数
const diffResult = calculateDifference(startDate, endDate);
const formattedResult = formatDifference(diffResult);
console.log(formattedResult); // 输出 "相差 4 天 2 小时 15 分钟 30 秒"
日期增加天数
js
import dayjs from 'dayjs'; // yarn add dayjs
// 可选:如果你需要使用特定插件,如时区处理等,可以单独导入
// import customParseFormat from 'dayjs/plugin/customParseFormat';
// dayjs.extend(customParseFormat);
function addDaysToDate(dateStr, daysToAdd) {
// 使用 dayjs 解析日期字符串
const date = dayjs(dateStr);
// 增加指定的天数
const newDate = date.add(daysToAdd, 'day');
// 格式化新的日期
return newDate.format('YYYY-MM-DD');
}
// 测试函数
console.log(addDaysToDate('2023-12-01', 2)); // 输出 "2023-12-03"