TypeScript日期工具: date-fns日期工具的使用方法

1、引入

$ npm install --save date-fns

2、使用

import {
  isToday,
  isYesterday,
  isTomorrow,
  format,
  addYears,
  addMonths,
  addDays,
  addHours,
  addMinutes,
  addSeconds,
  addMilliseconds,
  addWeeks,
  subDays,
  differenceInDays,
  startOfDay,
  startOfMonth,
  endOfDay,
  getDate,
  getISOWeek,
  isEqual,
  weeksToDays,
  subWeeks,
  parse,
  parseISO,
  getDay,
} from "date-fns";
import { da } from "date-fns/locale";
let date = new Date("2022-01-03");
let date2 = new Date();
let date3 = new Date(2000, 11, 11);
/**
 *  对日期进行格式化
 *     支持的模式字母有:
 *     y:年,
 *     M:年中的月份(1-12),
 *     d:月份中的天(1-31),
 *     H:小时(0-23),
 *     h:小时(0-11),
 *     m:分(0-59),
 *     s:秒(0-59),
 *     q:季度(1-4)
 *     w:be年的第几周
 */
console.log(format(date, "yyyy-MM-dd HH:mm:ss q w"));
// 返回周几 周一返回的是1,周六是6,国外第一天是周日,所以0 是周日
const arr = [
  "星期日",
  "星期一",
  "星期二",
  "星期三",
  "星期四",
  "星期五",
  "星期六",
];
console.log(getDay(date2));
console.log(arr[getDay(date2)]);
// 判断传入日期是否为今天  isToday(date: number | Date): boolean
console.log(isToday(date));
console.log(isToday(67));
// 判断传入日期是否为昨天
console.log(isYesterday(date));
// 判断是否为明天
console.log(isTomorrow(date));
// 格式化日期函数
console.log(format(date, "HH:mm")); // 17:05
console.log(format(date, "yyyy-MM-dd HH:mm:ss")); //2019-01-03 17:26:33
console.log(format(date, "yyyy-MM-dd")); //2019-01-03
// 数字为1970-01-01 08:00:00的毫秒
console.log(format(60000, "yyyy-MM-dd HH:mm:ss")); //1970-01-01 08:01:00
// 获得第n天之后的日期;
console.log(format(addDays(date, 1), "yyyy-MM-dd HH:mm:ss"));
// 获得第n天之前的日期;
console.log(format(subDays(date, 1), "yyyy-MM-dd HH:mm:ss"));
// 相差的天数,前面是开始日期,后面是结束日期,后面日期大,返回负值
console.log(differenceInDays(new Date("2022-10-20"), new Date("2022-10-21")));
// 返回当天的零点 2022-10-28 00:00:00
console.log(format(startOfDay(date), "yyyy-MM-dd HH:mm:ss"));
// 返回当天的结束时间 2022-10-28 23:59:59
console.log(format(endOfDay(date), "yyyy-MM-dd HH:mm:ss"));
// 返回当月的零点 2022-10-28 00:00:00
console.log(format(startOfMonth(date), "yyyy-MM-dd HH:mm:ss"));
// 获取日期的的日
console.log(getDate(date));
// 返回传入时间所在月份的第几周.
console.log(getISOWeek(date));
// 判断传入的时间是否相等
console.log(isEqual(date, new Date("2022-10-29")));
// 获取n周前的日期
console.log(format(subWeeks(date, 1), "yyyy-MM-dd"));
// 转换为日期
console.log("================");

console.log(
  format(parse("2022-10-22", "yyyy-MM-dd", new Date()), "yyyy-MM-dd q")
);

posted @ 2022-10-29 17:08  his365  阅读(956)  评论(0编辑  收藏  举报