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

