• Day.js 常用方法 以后再也不用new Date( )啦


    一、为什么使用Day.js

    文件大小只有2KB左右,下载、解析和执行的JavaScript更少,为代码留下更多的时间。而且更好的支持node、浏览器、小程序、ts 的各种环境。

    如果这时候让你手写一个获取当前时间  

    1. getNowDay() {
    2. var myDate=new Date;
    3. var year=myDate.getFullYear(); //获取当前年
    4. var mon=myDate.getMonth()+1<10?"0"+(myDate.getMonth()+1):myDate.getMonth()+1; //获取当前月
    5. var date=myDate.getDate()<10?"0"+myDate.getDate():myDate.getDate(); //获取当前日
    6. var hour=myDate.getHours()<10?"0"+myDate.getHours():myDate.getHours();//获取当前时
    7. var minute=myDate.getMinutes()<10?"0"+myDate.getMinutes():myDate.getMinutes();//获取当前分
    8. return year+"-"+mon+"-"+date+" "+hour+":"+minute+":00";
    9. },

    如果使用了 Day.js获取当前时间

    dayjs().format("YYYY-MM-DD HH:mm:ss")

     我们利用手写的时间 去学习和研究一些其他的功能 岂不是乐乐而不为 如果你是小白 还是建议你先学习手写哈

    二、安装

    npm install dayjs --save

    然后在项目代码中引入即可:

    1. var dayjs = require('dayjs')
    2. // import dayjs from 'dayjs' // ES 2015
    3. dayjs().format()

    三、常用方法

    1. 获取当前时间

    1. console.log(dayjs()); //获取Day.js的当前时间对象
    2. console.log(dayjs().format("YYYY-MM-DD")); // 2022-11-18
    3. console.log(dayjs().format("YYYY-MM-DD HH:mm:ss"));// 2022-11-18 19:42:13

    2.传入时间戳转换当前时间

    1. console.log(dayjs(1668739461501).format("YYYY-MM-DD")); // 2022-11-18
    2. console.log(dayjs(1668769665501).format("YYYY-MM-DD HH:mm:ss")); // 2022-11-18 19:07:45

    3.转换格式 

    1. console.log(dayjs('2022-11-18').format('YYYY/MM/DD') );// '2022/11/18'
    2. console.log(dayjs('2022-11-18').format('DD/MM/YYYY')); // '18/11/2022'

    4.校验是否是日期格式

    1. console.log(dayjs("2022-01-33").isValid()); // true
    2. console.log(dayjs("some invalid string").isValid()); //false

    5.严格校验

    1. console.log(dayjs('2022-02-31', 'YYYY-MM-DD', true).isValid()); // true
    2. console.log(dayjs('2022-02-31 19:16', 'YYYY-MM-DD', true).isValid()); // true
    3. console.log(dayjs('31-02-2022', 'YYYY-MM-DD', true).isValid()); // false

     6.时间 加/减

    n代表天数  dayjs(value) 可以传入日期 不传默认当天

    1. console.log(dayjs().add(n, 'day').format("YYYY-MM-DD")); // 在当前时间加1天
    2. console.log(dayjs().subtract(n, 'day').format("YYYY-MM-DD")); //在当前时间减1天

    获取当前日期的后7天 (前7天同理替换subtract方法,常用于购买车票、预约等)

    1. let afterDate = []
    2. for (let i = 1; i <= 7; i++) {
    3. afterDate.push(dayjs().add(i, 'day').format("YYYY-MM-DD"))
    4. }
    5. console.log(afterDate);

    常用格式:

    输入示例描述
    YY18两位数的年份
    YYYY2018四位数的年份
    M1-12月份,从 1 开始
    MM01-12月份,两位数
    MMMJan-Dec缩写的月份名称
    MMMMJanuary-December完整的月份名称
    D1-31月份里的一天
    DD01-31月份里的一天,两位数
    H0-23小时
    HH00-23小时,两位数
    h1-12小时, 12 小时制
    hh01-12小时, 12 小时制, 两位数
    m0-59分钟
    mm00-59分钟,两位数
    s0-59
    ss00-59秒,两位数
    S0-9毫秒,一位数
    SS00-99毫秒,两位数
    SSS000-999毫秒,三位数

     7.时间差异  

    ps: 下次判断开始时间大于结束时间 不要再说不会了

    1. const date1 = dayjs('2022-11-18')
    2. const date2 = dayjs('2022-11-17')
    3. console.log( date1.diff(date2)); // 86400000 默认单位是毫秒

     第二个参数可以传入单位  例如月份 判断相差多少个月 年份 相差多少年 

    相差多少月

    1. const date4 = dayjs('2019-09-25')
    2. console.log(date4.diff('2019-06-05', 'month')); // 7

    相差多少年

    1. const date5 = dayjs('2019-06-25')
    2. console.log(date5.diff('2019-06-05', 'day')); // 20

     8.判断两个日期是否相等

    console.log(dayjs('2022-11-17').isSame(dayjs('2022-11-18'))); // false 默认毫秒

    当使用第二个参数时,将会连同去比较更大的单位。

    console.log(dayjs('2011-05-01').isSame('2011-01-01', 'year')); //true 

    常用单位:

    单位缩写描述
    dayd
    weekw
    monthM月份(0-11)
    yeary
    hourh小时
    minutem分钟
    seconds
    millisecondms毫秒

    本文列举了一些 工作中常用的方法作参考  你想了解更多可以去 Day.js 官网

    补充场景:将星期一为星期的第一天

    因为在国外很多地区都是以星期日为首包括dayjs,所以要转换成星期一为第一天

    1. import dayjs from 'dayjs'
    2. import weekday from "dayjs/plugin/weekday";
    3. import "dayjs/locale/zh-cn";
    4. dayjs.extend(weekday);
    5. dayjs.locale('zh-cn')
    6. // 转换中国星期一为第一天
    7. console.log(dayjs().startOf('week').format("YYYY-MM-DD")); // 获取星期的第一天
    8. console.log(dayjs().endOf('week').format("YYYY-MM-DD")); // 获取星期的最后一天

  • 相关阅读:
    企业架构LNMP学习笔记24
    Rt-Thread 4-线程
    《web课程设计》基于HTML+CSS+JavaScript典的中医药大学网(11个页面)
    Java 线程
    Apache DolphinScheduler PMC:开源不一定也要九死一生
    【数据结构与算法】图的介绍和程序实现(含深度优先遍历、广度优先遍历)
    达梦数据库相关SQL及适配Mysql配置总结
    Apipost 推出IDEA插件一键生成API文档
    jQuery基础学习(属性操作、循环、事件冒泡委托、元素节点操作、滚轮事件、函数节流、json、ajax、jsonp与本地存储)
    原型和原型链
  • 原文地址:https://blog.csdn.net/m0_46846526/article/details/127916909