最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

node.js使用Moment.js js 時間計算方法示例小結(jié)

 更新時間:2023年05月08日 09:19:46   作者:囧小喵i  
這篇文章主要介紹了node.js使用Moment.js js 時間計算方法,結(jié)合實例形式分析了Moment.js js模塊時間計算的常用操作技巧與相關(guān)注意事項,需要的朋友可以參考下

概述

moment 是一個使用非常方便的 Node.js 模塊,可以幫助我們處理和格式化日期和時間。這里就來總結(jié)一下moment的常見用法。

首先是安裝:

npm i moment

其次是引入:

const moment = require('moment'); //common.js 模式
//或者ES6模式: import moment from 'moment'

基本用法

Moment.js中文文檔系列之八時間段(Durations)

  1. 創(chuàng)建時間段:duration()
  2. 人性化:humanize()
  3. 毫秒:milliseconds()
  4. 秒:seconds()
  5. 分:minutes()
  6. 小時:hours()
  7. 天:days()
  8. 月:months()
  9. 年:years()
  10. 增加時間:add()
  11. 減少時間:subtract()
  12. 單位轉(zhuǎn)換:as()
  13. 取值:get()
  14. 轉(zhuǎn)換為JSON:toJSON()
  15. 是否時間段:isDuration()

Moment.js中也有時間段對象。一個時間moment被定義為一個單點時刻,而時間段被定義為一個時間長度。

時間段沒有定義開始和結(jié)束時間,它們是一種前后的關(guān)系。一個時間段更類似于“2小時”,而不是“今天下午的2點到4點之間”。

例如,一年可以被定義為366天、365天、365.25天、12個月或52周。計算兩個時間之間的天或年時,使用moment#diff 比使用Durations更好。

1. 創(chuàng)建時間段:duration()

moment.duration(Number, String);
moment.duration(Number);
moment.duration(Object);
moment.duration(String);

創(chuàng)建一個時間段,通過moment.duration()方法并傳入一個毫秒級的時間戳。

moment.duration(100); // 100 毫秒

如果你想在創(chuàng)建時間段時使用非毫秒級的單位,你可以像這樣傳入時間單位:

moment.duration(2, 'seconds');
moment.duration(2, 'minutes');
moment.duration(2, 'hours');
moment.duration(2, 'days');
moment.duration(2, 'weeks');
moment.duration(2, 'months');
moment.duration(2, 'years');

moment#addmoment#subtract方法中使用簡寫形式在這兒也同樣適用。

KeyShorthand
yearsy
monthsM
weeksw
daysd
hoursh
minutesm
secondss
millisecondsms

moment#add一樣,你可以按需要傳入一個包含多個單位的對象。

moment.duration({
    seconds: 2,
    minutes: 2,
    hours: 2,
    days: 2,
    weeks: 2,
    months: 2,
    years: 2
});

格式是一個以冒號分隔的時、分、秒的字符串,如23:59:59。表示天的數(shù)字,使用點號分隔,如7.23:59:59。秒的部分還支持這樣23:59:59.999 。

moment.duration('23:59:59');
moment.duration('23:59:59.999');
moment.duration('7.23:59:59.999');
moment.duration('23:59');          //added in 2.3.0

2. 人性化:humanize()

moment.duration().humanize();

有時,你想像moment#from一樣友好顯示,但不想創(chuàng)建兩個時間。

moment.duration(1, "minutes").humanize(); // a minute
moment.duration(2, "minutes").humanize(); // 2 minutes
moment.duration(24, "hours").humanize();  // a day

默認,其返回值是無后綴的。如果需要帶后,可以傳一個參數(shù)。

moment.duration(1, "minutes").humanize(true); // in a minute

如果是相對當(dāng)前時間的前綴,可以傳入一個負數(shù)。

moment.duration(-1, "minutes").humanize(true); // a minute ago

3. 毫秒:milliseconds()

moment.duration().milliseconds();
moment.duration().asMilliseconds();

獲取一個數(shù)字表示的毫秒數(shù),使用moment.duration().milliseconds(),其返回是一個0?999之間的數(shù)字。

moment.duration(500).milliseconds(); // 500
moment.duration(1500).milliseconds(); // 500
moment.duration(15000).milliseconds(); // 0

如果要獲取的是一個毫秒級的時間段長度,使用moment.duration().asMilliseconds()方法代替。

moment.duration(500).asMilliseconds(); // 500
moment.duration(1500).asMilliseconds(); // 1500
moment.duration(15000).asMilliseconds(); // 15000

4. 秒:seconds()

moment.duration().seconds();
moment.duration().asSeconds();

獲取一個數(shù)字表示的秒數(shù),使用moment.duration().seconds(),其返回是一個0?59之間的數(shù)字。

moment.duration(500).seconds(); // 0
moment.duration(1500).seconds(); // 1
moment.duration(15000).seconds(); // 15

如果要獲取的是一個秒級的時間段長度,使用moment.duration().asSeconds()方法代替。

moment.duration(500).asSeconds(); // 0.5
moment.duration(1500).asSeconds(); // 1.5
moment.duration(15000).asSeconds(); // 15

5. 分:minutes()

moment.duration().minutes();
moment.duration().asMinutes();

獲取其它的時間段,moment.duration().minutes()可以獲取分鐘數(shù)(0?59),moment.duration().asMinutes()可以獲取表示分的長度。

6. 小時:hours()

moment.duration().hours();
moment.duration().asHours();

獲取其它的時間段,moment.duration().hours()可以獲取小時數(shù)(0?23),moment.duration().asHours()可以獲取表示小時的長度。

7. 天:days()

moment.duration().days();
moment.duration().asDays();

獲取其它的時間段,moment.duration().days()可以獲取天數(shù)(0?23),moment.duration().asHours()可以獲取表示天的長度。

8. 月:months()

moment.duration().months();
moment.duration().asMonths();

獲取其它的時間段,moment.duration().months()可以獲取月數(shù)(0?11),moment.duration().asMonths()可以獲取表示月的長度。

注意:一月的時間長度被定義為30天。

9. 年:years()

moment.duration().years();
moment.duration().asYears();

獲取其它的時間段,moment.duration().years()可以獲取年份,moment.duration().asYears()可以獲取表示年的長度。

注意:一年的時間長度被定義為365天。

10. 增加時間:add()

moment.duration().add(Number, String);
moment.duration().add(Number);
moment.duration().add(Duration);
moment.duration().add(Object);

對原時間段增加時間。

在創(chuàng)建時間段時使用的簡寫形式的時間單位,在這里也同樣適用??梢缘诙€參數(shù)中傳入。

var a = moment.duration(1, 'd');
var b = moment.duration(2, 'd');
a.add(b).days(); // 3

11. 減少時間:subtract()

moment.duration().subtract(Number, String);
moment.duration().subtract(Number);
moment.duration().subtract(Duration);
moment.duration().subtract(Object);

對原時間段減少時間。

在創(chuàng)建時間段時使用的簡寫形式的時間單位,在這里也同樣適用??梢缘诙€參數(shù)中傳入。

var a = moment.duration(3, 'd');
var b = moment.duration(2, 'd');
a.subtract(b).days(); // 1

12. 單位轉(zhuǎn)換:as()

moment.duration().as(String);

替換Duration#asX等方法,可以使用Duration#as('x'),moment#add中使用的單位簡寫,在這里也同樣適用。

duration.as('hours');
duration.as('minutes');
duration.as('seconds');
duration.as('milliseconds');

13. 取值:get()

moment.duration().get(String);

替換Duration#x等方法,可以使用Duration#get('x'),moment#add中使用的單位簡寫,在這里也同樣適用。

duration.get('hours');
duration.get('minutes');
duration.get('seconds');
duration.get('milliseconds');

14. 轉(zhuǎn)換為JSON:toJSON()

moment.duration().toJSON();

將時間段對象序列化成JSON時,其會按ISO8601標(biāo)準(zhǔn)的字符串進行轉(zhuǎn)換。

JSON.stringify({
    postDuration : moment.duration(5, 'm')
}); // '{"postDuration":"PT5M"}'

15. 是否時間段:isDuration()

moment.isDuration(obj);

檢查是否是一個有效的時間段對象,使用moment.isDuration()

moment.isDuration() // false
moment.isDuration(new Date()) // false
moment.isDuration(moment()) // false
moment.isDuration(moment.duration()) // true
moment.isDuration(moment.duration(2, 'minutes')) // true

總結(jié) :

moment.duration(now())? ? 獲取當(dāng)前時間
moment.duration(now()).asHours()  //獲取當(dāng)前時間的小時時間段
asMilliseconds()//毫秒 
asSeconds()//秒
asMinutes()//分
asHours()//時
asDays()//天
asMonths()//月
asYears()//年

不加 as 的時候,是獲取時間值

附:

一個使用 moment 模塊計算時間差的示例:

const moment = require('moment');
const start = moment('2023-05-01 09:00:00', 'YYYY-MM-DD HH:mm:ss');
const end = moment();
const diff = end.diff(start);
console.log(moment.duration(diff).asMinutes()); // 輸出兩個時間之間間隔的分鐘數(shù)

在這個示例中,首先引入了 moment 模塊,并使用 moment() 方法創(chuàng)建了兩個日期對象 startend。其中,start 表示起始日期和時間,使用 moment() 方法可以從標(biāo)準(zhǔn)的日期字符串或 JavaScript Date 對象創(chuàng)建日期對象。end 則表示當(dāng)前時間,通過直接調(diào)用moment() 創(chuàng)建當(dāng)前時間的日期對象。

然后,使用 diff() 方法計算 endstart 之間的時間差,將結(jié)果保存到變量 diff 中。接著,將 diff 傳遞給 duration() 方法,創(chuàng)建一個持續(xù)時間對象,并使用 asMinutes() 方法獲取該持續(xù)時間以分鐘為單位的值。

最后,將兩個時間之間的間隔分鐘數(shù)輸出到控制臺上。

相關(guān)文章

  • 如何用Node.js編寫內(nèi)存效率高的應(yīng)用程序

    如何用Node.js編寫內(nèi)存效率高的應(yīng)用程序

    這篇文章主要介紹了如何用Node.js編寫內(nèi)存效率高的應(yīng)用程序,對Node.js感興趣的同學(xué),可以參考下
    2021-04-04
  • Node.js中使用計時器定時執(zhí)行函數(shù)詳解

    Node.js中使用計時器定時執(zhí)行函數(shù)詳解

    這篇文章主要介紹了Node.js中使用計時器定時執(zhí)行函數(shù)詳解,本文使用了Node.js中的setTimeout和setInterval函數(shù),需要的朋友可以參考下
    2014-08-08
  • Node.js搭建Https服務(wù)過程詳解

    Node.js搭建Https服務(wù)過程詳解

    這篇文章主要為大家介紹了Node.js搭建Https服務(wù)過程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-08-08
  • 詳解express與koa中間件模式對比

    詳解express與koa中間件模式對比

    本篇文章主要介紹了詳解express與koa中間件模式對比,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-08-08
  • Node.js中fs模塊實現(xiàn)配置文件的讀寫操作

    Node.js中fs模塊實現(xiàn)配置文件的讀寫操作

    在Node.js中, fs模塊提供了對文件系統(tǒng)的訪問功能,我們可以利用它來實現(xiàn)配置文件的讀取和寫入操作,這篇文章主要介紹了Node.js中fs模塊實現(xiàn)配置文件的讀寫,需要的朋友可以參考下
    2024-04-04
  • nodeJS進程管理器pm2的使用

    nodeJS進程管理器pm2的使用

    這篇文章主要介紹了nodeJS進程管理器pm2的使用,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-01-01
  • Express + Session 實現(xiàn)登錄驗證功能

    Express + Session 實現(xiàn)登錄驗證功能

    本文主要介紹在 Express 框架中,如何使用 Session 來實現(xiàn)用戶登錄身份驗證。對express session實現(xiàn)登錄驗證相關(guān)知識,感興趣的朋友一起看看吧
    2017-09-09
  • 詳解使用Typescript開發(fā)node.js項目(簡單的環(huán)境配置)

    詳解使用Typescript開發(fā)node.js項目(簡單的環(huán)境配置)

    本篇文章主要介紹了詳解使用Typescript開發(fā)node.js項目(簡單的環(huán)境配置),非常具有實用價值,需要的朋友可以參考下
    2017-10-10
  • Node.js中同步和異步編程的區(qū)別及使用方法

    Node.js中同步和異步編程的區(qū)別及使用方法

    在Node.js中,同步和異步編程是兩種不同的處理方式。同步方式會阻塞程序的執(zhí)行,而異步方式則不會。通過掌握它們的區(qū)別和使用方法,可以更好地實現(xiàn)程序的性能優(yōu)化和功能擴展。同時,需要注意異步編程中的回調(diào)地獄問題,使用Promise可以更好地處理異步編程
    2023-05-05
  • Node.js制作簡單聊天室

    Node.js制作簡單聊天室

    這篇文章主要為大家詳細介紹了Node.js制作簡單聊天室的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-01-01

最新評論

安国市| 遵义县| 莎车县| 大足县| 长寿区| 塘沽区| 舞阳县| 康马县| 辽阳县| 齐河县| 凤山县| 合水县| 安新县| 沙田区| 肇源县| 都匀市| 洛南县| 根河市| 锡林浩特市| 龙胜| 邵武市| 新乡县| 思茅市| 达日县| 清苑县| 治县。| 恩施市| 宁都县| 徐汇区| 邹城市| 垦利县| 兴化市| 紫云| 樟树市| 芦溪县| 河曲县| 衡水市| 凤山市| 峨眉山市| 紫云| 四子王旗|