JavaScript日期處理類庫moment()獲取時(shí)間
moment 是一個(gè) JavaScript 日期處理類庫。
使用:
//安裝 moment npm install moment -- save
引用
//在main.js中全局引入 import moment from "moment"
設(shè)定moment區(qū)域?yàn)橹袊?/p>
//import 方式
import 'moment/locale/zh-cn'
moment.locale('zh-cn'); 掛載全局變量
Vue.prototype.$moment = moment;
代碼示例:
- 當(dāng)前日期向前或者向后推的日期格式化
moment().subtract(13, "days").calendar(); // 當(dāng)前時(shí)間往前推13天的日歷時(shí)間: 2024/07/16 moment().subtract(3, "days").calendar(); // 當(dāng)前時(shí)間往前推3天: 本周三16:46 moment().subtract(1, "days").calendar(); // 當(dāng)前時(shí)間往前推1天: 昨天16:47 moment().calendar(); // 今天16:48 moment().add(1, "days").calendar(); // 當(dāng)前時(shí)間往后推1天: 明天16:49 moment().add(3, "days").calendar(); // 當(dāng)前時(shí)間往后推3天: 下周二16:50 moment().add(10, "days").calendar(); // 當(dāng)前時(shí)間往后推10天: 2024/07/06
常用函數(shù):
//獲取當(dāng)前時(shí)間
moment();//Sun Jun 04 2023 15:12:11 GMT+0800
//獲取今天0時(shí)0分0秒
moment().startOf('day'); /Sun Jun 04 2024 00:00:00 GMT+0800
//獲取本周第一天(周日)0時(shí)0分0秒
moment().startOf("week"); //Mon May 29 2024 00:00:00 GMT+0800
//獲取本周周一0時(shí)0分0秒
moment().startOf("isoWeek"); //Mon May 29 2024 00:00:00 GMT+0800
//獲取當(dāng)前月第一天0時(shí)0分0秒
moment().startOf("month"); //Thu Jun 01 2024 00:00:00 GMT+0800
//獲取今天23時(shí)59分59秒
moment().endOf("day"); //Sun Jun 04 2024 23:59:59 GMT+0800
//獲取本周最后一天(周六)23時(shí)59分59秒
moment().endOf("week"); //Sun Jun 04 2024 23:59:59 GMT+0800
//獲取本周周日23時(shí)59分59秒
moment().endOf("isoWeek"); //Sun Jun 04 2024 23:59:59 GMT+0800
//獲取當(dāng)前月最后一天23時(shí)59分59秒
moment().endOf("month"); //Fri Jun 30 2024 23:59:59 GMT+0800
//獲取當(dāng)前月的總天數(shù)
moment().daysInMonth(); //30
//獲取時(shí)間戳(以秒為單位)
moment().unix(); //1685863710
moment().format('X'); //1685863669
//獲取時(shí)間戳(以毫秒為單位)
moment().valueOf(); //返回值為數(shù)值型:1685863954482
moment().format('x'); // 返回值為字符串類型:1685863897121
//獲取年份
moment().year(); //2024
moment().get("year"); //2024
//獲取月份
moment().month(); //5
moment().get("month"); //5
//獲取一個(gè)月中的某一天
moment().date(); //4
moment().get("date"); //4
//獲取一個(gè)星期中的某一天
moment().day(); //4
moment().weekday(); //6
moment().isoWeekday(); //7
moment().get("day"); //0
moment().get("weekday"); //6
moment().get("isoWeekday"); //7
//獲取小時(shí)
moment().hours(); //15
moment().get("hours"); //15
//獲取分鐘
moment().minutes(); //46
moment().get("minutes"); //46
//獲取秒數(shù)
moment().seconds(); //24
moment().get("seconds"); //41
//獲取當(dāng)前的年月日時(shí)分秒
moment().toArray(); //[ 2024, 5, 4, 15, 48, 40, 288 ]
moment().toObject(); //{ "years": 2024, "months": 5, "date": 4, "hours": 15, "minutes": 49, "seconds": 9, "milliseconds": 386 }
//當(dāng)前時(shí)間
moment()
//中國標(biāo)準(zhǔn)時(shí)間
moment().toDate()
//格式化當(dāng)前時(shí)間
moment().format('YYYY-MM-DD')
//12小時(shí)制:
moment().format('YYYY-MM-DD hh:mm:ss')
//24小時(shí)制://kk有問題 改為HH
moment().format('YYYY-MM-DD kk:mm:ss')
moment().format('YYYY-MM-DD HH:mm:ss')
//本月月初
moment().startOf('month')
//本月月末
moment().endOf('month')
//N天/月/小時(shí)后
moment().add(5, 'month')
//5個(gè)月之后的日期,參數(shù)為負(fù)則表示之前,參數(shù)'month'還可以為'day'、'hour'
//當(dāng)前時(shí)間的前10天時(shí)間
moment().subtract(10, "days").format("YYYY-MM-DD");
//當(dāng)前時(shí)間的前1年時(shí)間
moment().subtract(1, "years").format("YYYY-MM-DD");
//當(dāng)前時(shí)間的前3個(gè)月時(shí)間
moment().subtract(3, "months").format("YYYY-MM-DD");
//當(dāng)前時(shí)間的前一個(gè)星期時(shí)間
moment().subtract(1, "weeks").format("YYYY-MM-DD");
附:js獲取當(dāng)前日期是第幾周、每年有多少周、周的開始時(shí)間和結(jié)束時(shí)間
//引入moment.js
import moment from 'moment';
//獲取一年中有多少周、每一周開始和結(jié)束時(shí)間
const mapWeeksOfyear = ({ year} = {}) => {
const nowYear = year ? year : moment().year();
const timestamp = (new Date()).valueOf()
// 設(shè)置正在處理的年份
let handleYear = moment(new Date(String(nowYear)));
// 這一年有多少個(gè)周
const totalWeeks = handleYear.endOf('year').isoWeek();
const arryWeek = [];
let currentWeek = null; //當(dāng)前日期是第幾周
for(let i = 1;i <= totalWeeks;i++){
let startOf = handleYear.week(i).startOf('week').format('MM-DD');
let endOf = handleYear.week(i).endOf('week').format('MM-DD');
let ednyear = handleYear.week(i).endOf('week').format('YYYY');
let startValue= handleYear.week(i).startOf('week').valueOf();
let endValue= handleYear.week(i).endOf('week').valueOf();
if(startValue<=timestamp&&endValue>=timestamp){
currentWeek = i
}
arryWeek.push({
value: i,
name: `第${i}周 ${ednyear>nowYear?nowYear + "-" +startOf :startOf} 至 ${ednyear>nowYear?ednyear + "-" +endOf:endOf}`,
startTime: handleYear.week(i).startOf('week').format('YYYY-MM-DD'),// 這周的開始時(shí)間
endTime: handleYear.week(i).endOf('week').format('YYYY-MM-DD'), // 這周的結(jié)束時(shí)間
})
}
return {arryWeek,currentWeek}
}到此這篇關(guān)于JavaScript日期處理類庫moment()獲取時(shí)間的文章就介紹到這了,更多相關(guān)moment()獲取時(shí)間內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
深入理解JavaScript系列(2) 揭秘命名函數(shù)表達(dá)式
網(wǎng)上還沒用發(fā)現(xiàn)有人對(duì)命名函數(shù)表達(dá)式進(jìn)去重復(fù)深入的討論,正因?yàn)槿绱?,網(wǎng)上出現(xiàn)了各種各樣的誤解,本文將從原理和實(shí)踐兩個(gè)方面來探討JavaScript關(guān)于命名函數(shù)表達(dá)式的優(yōu)缺點(diǎn)2012-01-01
javascript實(shí)現(xiàn)圖片自動(dòng)和可控的輪播切換特效
這篇文章主要介紹了javascript實(shí)現(xiàn)圖片自動(dòng)和可控的輪播切換特效,效果非常的棒,推薦給大家,有需要的小伙伴可以參考下。2015-04-04
ES6知識(shí)點(diǎn)整理之String字符串新增常用方法示例
這篇文章主要介紹了ES6知識(shí)點(diǎn)整理之String字符串新增常用方法,結(jié)合實(shí)例形式分析了ES6字符串String includes,startsWith,endsWith等方法相關(guān)使用技巧,需要的朋友可以參考下2019-07-07
D3.js實(shí)現(xiàn)力向?qū)D的繪制教程詳解
力向?qū)D是繪圖的一種算法,實(shí)現(xiàn)了用以模擬粒子物理運(yùn)動(dòng)的?velocity?Verlet?數(shù)值積分器。本文將利用D3.js實(shí)現(xiàn)力向?qū)D的繪制,需要的可以參考一下2022-11-11
Boostrap基礎(chǔ)教程之JavaScript插件篇
Boostrap提供了12種JavaScript插件,在本文中給大家介紹了,不知道的朋友可以參考下,本文重點(diǎn)給大家介紹bootstrap基礎(chǔ)之js插件,感興趣的朋友一起學(xué)習(xí)吧2016-09-09
JavaScript操作URL的相關(guān)內(nèi)容集錦

