Skip to content
鼓励作者:欢迎打赏犒劳

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的支持的单位列表,各个传入的单位对大小写不敏感,支持缩写和复数。 但是缩写是区分大小写的。

单位缩写详情
dayd星期几 (星期天0,星期六6)
weekw一年中的第几周
quarterQ季度
monthM月份 (一月 0, 十二月 11)
yeary
hourh
minutem
seconds
millisecondms毫秒

字符串格式化

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"

如有转载或 CV 的请标注本站原文地址