moment.js

1
2
3
4
5
6
npm install moment --save   # npm
yarn add moment # Yarn
Install-Package Moment.js # NuGet
spm install moment --save # spm
meteor add momentjs:moment # meteor
bower install moment --save # bower (deprecated)

Unix 轉換

format格式化
如何使用引入:import moment from ‘moment’,與時間轉換:moment(‘timestamp值’).format(‘YYYY-MM-DDTHH:mm:ss.SSS’);

1
2
3
4
5
6
7
8
9
10
11
12
//引入
import moment from 'moment';
//目前時間搓
const TimeStamp = moment().valueOf()
console.log('TimeStamp', TimeStamp);
//目前時間搓
const nowTimeStamp = Date.now();
console.log('nowTimeStamp', nowTimeStamp);
const nowTime = moment(nowTimeStamp).format('YYYY-MM-DDTHH:mm:ss.SSS');
console.log('現在時間', nowTime);
console.log('現在時間格式化',moment().format());

moment(‘要驗證的日期’).isBetween(‘起始日’, ‘截止日’);

使用情境:驗證是否有在一段時間以內或是在截止日以前

1
2
3
moment('2023-03-29').isBetween('2023-03-01', '2023-03-29'); // true

moment('2023-04-29').isBetween('2023-03-01', '2023-03-29'); // false

相對時間:

距離現在幾個月:moment(“20221031”, “YYYYMMDD”).fromNow()
moment(“20221031”, “YYYYMMDD”).fromNow();
解釋:距離現在幾個月

距離開始小時:moment().startOf(‘day’).fromNow()
moment().startOf(‘day’).fromNow();
解釋:距離今天開始時間

距離結束小時:moment().endOf(‘day’).fromNow()
moment().startOf(‘day’).fromNow();
解釋:距離今天結束時間

距離小時結束分鐘:moment().startOf(‘hour’).fromNow();
解釋:距離小時結束分鐘

1
2
3
4
5
6
7
console.log('現在時間:', moment().format());//2023-01-07T13:44:41+08:00
console.log('20221031距離現在:', moment("20221031", "YYYYMMDD").fromNow());//2 months ago
console.log('20230620距離現在:', moment("20230620", "YYYYMMDD").fromNow());//in 5 months
console.log('距離今天開始小時startOf('day'):', moment().startOf('day').fromNow());//14 hours ago
console.log('距離今天結束時間endOf('day'):', moment().endOf('day').fromNow());//in 10 hours
console.log('距離小時結束分鐘startOf('hour'):',moment().startOf('hour').fromNow())//37 minutes ago

運算

增加天數變換日期:moment().add(天數, ‘days’).calendar();

現在的日期加上七天

1
moment().add(7, 'days').calendar();//01/14/2023

減去天數變換日期:moment().subtract (天數, ‘days’).calendar();

現在的日期減去七天

1
moment().subtract(7, 'days').calendar(); //12/31/2022

###距離今天還有幾天: from & to:不會有負值 例如:-1,-2

1
2
3
4
5
const a = moment([2023, 0, 1]);
const b = moment([2023, 0, 12]);
const c = moment([2023, 0, 20]);
console.log('距離', a.from(b),'天');
console.log('距離', a.to(c), '天');

查詢

isBefore 是用來查詢是否在早於後面的時間

1
2
moment('2023-10-20').isBefore('2023-10-21') // true
moment('2023-10-20').isBefore('2023-12-31', 'year') // false

isSame 是用來查詢是否和後面的時間相等

1
2
moment('2022-10-20').isSame('2023-12-31', 'year') // false
moment('2023-10-20').isSame('2023-01-01', 'year') // true

isAfter 是用來查詢是否和晚於後面的時間

1
2
moment('2022-10-20').isAfter('2023-10-19') // true
moment('2010-10-20').isAfter('2010-01-01', 'year') // false

isSame 是用來查詢是否在設定的時間範圍內

1
2
moment('2010-10-20').isBetween('2010-10-19', '2010-10-25') // true
moment('2010-10-20').isBetween('2010-01-01', '2012-01-01', 'year') // false

更換語言

1
2
3
moment.locale('zh-tw', {
months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'),
}