Day.jsのインストールと使い方、共通知識の記録

※Day.js公式サイト

Day.js 中国の Web サイト
Day.js は、使いやすい日付 js ライブラリです。
ファイル サイズはわずか約 2 KB で、ダウンロード、解析、実行される JavaScript の量が減り、コードにより多くの時間を費やすことができます。
多数の日付処理メソッドが含まれており、通常の日付処理に非常に役立ちます。
このブログでは、いくつかの一般的な方法のみを記録します。完全な方法は公式 Web サイトで見つけることができます。

dayjsのインストールと紹介

// 安装
npm i dayjs

// 页面文件引入
import dayjs from 'dayjs';

* 時間をもらう

// 获取当前时间
dayjs().format('YYYY-MM-DD');  // 2023-03-06
dayjs().format('YYYY-MM-DD HH:mm:ss'); // 2023-03-06 13:47:12

// 获取本日时间段
dayjs().startOf('day').format('YYYY-MM-DD HH:mm:ss')
dayjs().endOf('day').format('YYYY-MM-DD HH:mm:ss')
// 获取本周时间段
dayjs().startOf('week').add(1, 'day').format('YYYY-MM-DD HH:mm:ss')
dayjs().endOf('week').add(1, 'day').format('YYYY-MM-DD HH:mm:ss')
// 获取本月时间段
dayjs().startOf('month').format('YYYY-MM-DD HH:mm:ss')
dayjs().endOf('month').format('YYYY-MM-DD HH:mm:ss')
// 传入时间戳(数字),获取对应时间
dayjs(1318781876406).format('YYYY-MM-DD HH:mm:ss');   // 2011-10-17 00:17:56
// 传入数组,获取对应时间
dayjs([2010, 6, 10]).format('YYYY-MM-DD HH:mm:ss');  // 2010-06-10 00:00:00


// 调用 dayjs#toDate 从 Day.js 对象中获取原生的 Date 对象
dayjs('2019-01-25').toDate()
// 是否是Day.js
// 这表示一个变量是否为 Day.js 对象。
dayjs.isDayjs(dayjs()) // true
dayjs.isDayjs(new Date()) // false

// 获取年、月、日、小时、分钟、秒、毫秒
dayjs().year();
dayjs().month();
dayjs().date();
dayjs().hour();
dayjs().minute();
dayjs().second();
dayjs().millisecond();
dayjs().day(); // 获取当前是星期几
dayjs('2019-01-25').daysInMonth() // 31  获取当前月份包含的天数



// 另一种方法获取年、月、日、小时、分钟、秒、毫秒、星期几
//dayjs().get('year')
//dayjs().get('month') // start 0
//dayjs().get('date')
//dayjs().get('hour')
//dayjs().get('minute')
//dayjs().get('second')
//dayjs().get('millisecond')
//dayjs().get('day') // 星期几

* カスタム時間間隔を取得します (現在の時間を増減します)

サポートチェーンコール

// 增加
dayjs().add(7, 'day') // 在当前时间上增加7天
dayjs().add(7, 'day').format('YYYY-MM-DD HH:mm:ss'); // 2023-03-13 10:39:51
// 减少
dayjs().subtract(7, 'year') // 在当前时间上减少7年
dayjs().subtract(7, 'year').format('YYYY-MM-DD HH:mm:ss'); // 2016-03-06 10:39:05

ここに画像の説明を挿入

* 2 つの時間の差を求めます

2 つの日時の差を指定された単位で返します。
デフォルトの単位はミリ秒です
。他の単位で差を取得するには、対応する単位を2 番目のパラメータに渡します。
デフォルトでは、dayjs#diff は結果を整数に丸めます。浮動小数点数を取得したい場合は、3 番目のパラメータとして true を渡します。

const date1 = dayjs('2019-01-25')
const date2 = dayjs('2018-06-05')
date1.diff(date2) // 20214000000 默认单位是毫秒

const date3 = dayjs('2019-01-25')
date3.diff('2018-06-05', 'month') // 7

const date4 = dayjs('2019-01-25')
date4.diff('2018-06-05', 'month', true) // 7.645161290322581

相対時間

現在から現在のインスタンスまでの相対時間を返します。この機能はRelativeTimeプラグインに依存しています

現在の時間と比較して

dayjs.extend(relativeTime)
dayjs('1999-01-01').fromNow() // xx 年前
dayjs('1999-01-01').toNow() // xx 年后

// 如果传入 true,则可以获得不带后缀的值。
dayjs('1999-01-01').fromNow(true) // xx 年
dayjs('1999-01-01').toNow(true) // xx 年

相対指定時間

const a = dayjs('2000-01-01')
dayjs('1999-01-01').to(a) // 1 年后

// 如果传入 true,则可以获得不带后缀的值。
var a = dayjs('2000-01-01')
dayjs('1999-01-01').to(a, true) // 1 年

日付サイズの比較

前かどうか

dayjs().isBefore()

dayjs().isBefore(dayjs('2011-01-01')) // 默认毫秒
dayjs().isBefore('2011-01-01', 'year') // 

dayjs().isAfter()

dayjs().isAfter(dayjs('2011-01-01')) // 默认毫秒
dayjs().isAfter('2011-01-01', 'year')

同じですか

dayjs().isSame()

dayjs().isSame(dayjs('2011-01-01')) // 默认毫秒

// 如果想使用除了毫秒以外的单位进行比较,则将单位作为第二个参数传入。
// 当使用第二个参数时,将会连同去比较更大的单位。 如传入 month 将会比较 month 和 year。 // 传入 day 将会比较 day、 month和 year。
dayjs().isSame('2011-01-01', 'year')

最大値、最小値

MinMaxプラグインに依存します

dayjs.extend(minMax)
// 最大值
dayjs.max(dayjs(), dayjs('2018-01-01'), dayjs('2019-01-01'))
dayjs.max([dayjs(), dayjs('2018-01-01'), dayjs('2019-01-01')])
// 最小值
dayjs.min(dayjs(), dayjs('2018-01-01'), dayjs('2019-01-01'))
dayjs.min([dayjs(), dayjs('2018-01-01'), dayjs('2019-01-01')])

チェック

緩やかな検証

受信した値を時刻と日付に解析できるかどうかのみを確認します

dayjs('2022-01-33').isValid();
// true, parsed to 2022-02-02
dayjs('some invalid string').isValid();
// false

厳格な検証

渡された値が解析可能かどうか、また意味のある日付であるかどうかを確認してください。最後の 2 つのパラメータ format と strict を指定する必要があります。

dayjs('2022-02-31', 'YYYY-MM-DD', true).isValid();
// false

おすすめ

転載: blog.csdn.net/IT_dabai/article/details/129356041