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

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")
);

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
date-fns是一个现代JavaScript日期实用程序库,用于处理日期和时间。它提供了丰富的日期处理功能,包括格式化、解析、计算、比较等等。 如果您想在Nuxt.js项目中使用date-fns,您可以通过以下命令将@nuxtjs/date-fns作为依赖项添加到项目中: ```bash yarn add --dev @nuxtjs/date-fns ``` 或者 ```bash npm install --save-dev @nuxtjs/date-fns ``` 有时候,在安装date-fns包时可能会遇到问题。例如,您可能会遇到"Range Error: locale must contain localize property"错误,这可能是由于date-fns的版本不匹配所致。解决此问题的一种方法使用以下命令行安装适当的版本: ```bash npm i date-fns@next ``` 这将安装版本为"^2.0.0-alpha.27"的date-fns。另外,有时在使用TypeScript检测时可能会出现没有默认导出的问题。您可以尝试使用下面的导入方式解决该问题: ```typescript import * as th from 'date-fns/locale/th' ``` 通过这些步骤,您可以成功安装和使用date-fns依赖项。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [date-fns-module:现代JavaScript日期实用程序库-Nuxt.js的date-fns](https://download.csdn.net/download/weixin_42102634/18242068)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [react-datepicker组件依赖date-fns实现国际化功能时遇到的问题以及解决方法](https://blog.csdn.net/cc18868876837/article/details/86744583)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值