javascript技巧

关注公众号 jb51net

关闭
首页 > 网络编程 > JavaScript > javascript技巧 > moment()获取时间

JavaScript日期处理类库moment()获取时间

作者:周不凢

moment.js是一个广泛使用的JavaScript日期处理库,便于开发者进行日期的解析、验证、操作和格式化,通过引用并设置区域,可以轻松实现本地化日期和时间的处理,文中通过代码介绍的非常详细,需要的朋友可以参考下

moment 是一个 JavaScript 日期处理类库。

使用:

//安装 moment
npm install moment -- save

引用

//在main.js中全局引入
import moment from "moment"

设定moment区域为中国

//import 方式
import 'moment/locale/zh-cn'
moment.locale('zh-cn');   

挂载全局变量

Vue.prototype.$moment = moment;

代码示例:

moment().subtract(13, "days").calendar(); // 当前时间往前推13天的日历时间: 2024/07/16
moment().subtract(3, "days").calendar(); // 当前时间往前推3天: 本周三16:46
moment().subtract(1, "days").calendar(); // 当前时间往前推1天: 昨天16:47
moment().calendar(); // 今天16:48
moment().add(1, "days").calendar(); // 当前时间往后推1天: 明天16:49
moment().add(3, "days").calendar(); // 当前时间往后推3天: 下周二16:50
moment().add(10, "days").calendar(); // 当前时间往后推10天: 2024/07/06

常用函数:

//获取当前时间
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

//获取当前月第一天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

//获取当前月最后一天23时59分59秒
moment().endOf("month"); //Fri Jun 30 2024 23:59:59 GMT+0800

//获取当前月的总天数
moment().daysInMonth(); //30

//获取时间戳(以秒为单位)
moment().unix(); //1685863710
moment().format('X'); //1685863669

//获取时间戳(以毫秒为单位)
moment().valueOf(); //返回值为数值型: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

//获取秒数
moment().seconds(); //24
moment().get("seconds"); //41

//获取当前的年月日时分秒
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 }
//当前时间
moment()  

//中国标准时间
moment().toDate()

//格式化当前时间
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个月之后的日期,参数为负则表示之前,参数'month'还可以为'day'、'hour'


//当前时间的前10天时间
moment().subtract(10, "days").format("YYYY-MM-DD"); 

//当前时间的前1年时间
moment().subtract(1, "years").format("YYYY-MM-DD"); 

//当前时间的前3个月时间
moment().subtract(3, "months").format("YYYY-MM-DD"); 

//当前时间的前一个星期时间
moment().subtract(1, "weeks").format("YYYY-MM-DD"); 

附:js获取当前日期是第几周、每年有多少周、周的开始时间和结束时间

//引入moment.js
import moment from 'moment';
//获取一年中有多少周、每一周开始和结束时间
const mapWeeksOfyear = ({ year} = {}) => {
    const nowYear = year ? year : moment().year();
    const timestamp = (new Date()).valueOf()
        // 设置正在处理的年份
    let handleYear = moment(new Date(String(nowYear)));
      // 这一年有多少个周
    const totalWeeks = handleYear.endOf('year').isoWeek();
    const arryWeek  = [];
    let currentWeek = null; //当前日期是第几周
    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'), // 这周的结束时间
        })
    } 
    return {arryWeek,currentWeek}
}

到此这篇关于JavaScript日期处理类库moment()获取时间的文章就介绍到这了,更多相关moment()获取时间内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文