精华内容
下载资源
问答
  • 2020-12-18 14:24:03

    后端传来的时间格式为2020-12-18格式,自己格式化后苹果显示异常

    new Date((item.eventEndTime).replace(/-/g,'/'))

     

    更多相关内容
  • 日期时间格式化,兼容IOS苹果系统

    千次阅读 2022-03-01 16:09:46
    介绍:处理日期时间,主要包括格式化日期时间、一些在开发中一些经常对时间处理和判断、公历日期转换农历日期、 解决C端苹果时间显示兼容问题【实例化参数为时间戳、-横杠、/斜杠日期字符串】 安装: npm ...

    一、功能

    介绍

    处理日期和时间,主要包括格式化日期和时间、一些在开发中一些经常对时间处理和判断、公历日期转换农历日期、 解决C端苹果时间显示兼容问题【实例化参数为时间戳、-横杠、/斜杠日期字符串】

    安装:

    npm install wh-date
    

    实例化方式

    const Wdate = require('wh-date')
    
    const newData = new Wdate(); // 默认本地时间
    const newData = new Wdate(milliseconds/seconds);
    const newData = new Wdate(dateString);
    

    用法

    const Wdate = require('wh-date')
    
    const newData = new Wdate() // 系统当前时间
    const newData = new Wdate('2022-01-26 10:00:00') 
    const newData = new Wdate('2022-01-26') // 日期格式1
    const newData = new Wdate('2022-01-26 10:10') // 日期格式2
    const newData = new Wdate('2022-01-26 10:10:01') // 日期格式3
    const newData = new Wdate('2022/01/26 10:10:01') // 日期格式4
    const newData = new Wdate(1645586844) // 时间戳10位
    const newData = new Wdate(1645586880682) // 时间戳13位
    

    注意: C端苹果手机兼容性问题,方式三:仅支持参数为-横杠2022-02-25 10:02:10/斜杠2022/02/25 10:02:10表示日期方法

    format格式化日期字符说明

    传入字符串,更新指定字符串替换相应的值进行显示

    参数字符串说明
    yy
    MM
    dd
    HH小时 24小时制
    hh小时 12小时制
    mm分钟
    ss
    ww星期

    二、方法列表

    方法功能说明版本
    常规方法
    getYear返回年份
    getMonth返回月份(1-12)
    getDate返回月中的第几天(1-31)
    getHours返回小时(1-12/1-24小时制)
    getMinutes返回分钟(1-59)
    getSeconds返回秒(1-59)
    getMilliseconds返回毫秒(1-999)
    getTime返回自 1970 年 1 月 1 日午夜以来与指定日期的毫秒数/秒数
    getDay返回星期(0-6)
    get返回年月日时分秒毫秒【根据参数返回】
    扩展方法
    getMonthCountDay返回当月最后一天数
    getQuarter返回季节(1-4)V1.0.4
    getAge返回年龄(大于等0的整数)V1.0.5
    getCconstellation返回星座V1.0.5
    getDayOfYear返回日期是当年的多少天V1.0.6
    getAdd返回日期相加的新日期V1.0.8
    getSubtract返回日期相减的新日期V1.0.8
    getDateDiff返回日期相差天、时、总小时、分、秒、时间戳V1.0.8
    getDiffDay返回日期相差天数(自然天数)V1.0.8
    格式化数据方法
    getTimeFrame返回不同时间段特定文案,默认AM(上午0-12点) , PM(下午12-24点)
    getAllDate返回格式化日期,默认返回yyy-MM-dd格式
    getAllTime返回格式化时间,默认返回hh:mm:ss格式
    getFormat返回格式化日期,默认返回yyy-MM-dd hh:mm:ss格式V1.0.8
    getFormatOne返回格式化日期:
    当天日期:显示hh:ss
    7天内:显示星期ww
    7天前:显示yyy-MM-dd hh:mm:ss
    getFuture返回传入时间戳有多少天、时、分、秒、时间戳
    农历日期方法
    getLunarZodiac返回农历生肖鼠、牛、虎、兔、龙、蛇、马、羊、猴、鸡、狗、猪V1.0.5
    getLunar返回农历日期数字/汉字/干支/润月信息V1.0.5
    日期判断方法
    isValid判断日期是否合法V1.0.4
    isLeapYear判断是否是闰年
    isBefore判断日期在指定日期前V1.0.4
    isSame判断日期是否相同V1.0.4
    isAfter判断日期在指定日期后V1.0.4
    isBetween判断指定日期是否在传入日期之间V1.0.8
    isThisYear判断是否是当年V1.0.6
    isThisMonth判断是否是当月V1.0.6
    isThisWeek判断是否是当前周V1.0.6
    isToday判断是否是当天V1.0.6
    isWorkDay判断是否是工作日/周末V1.0.6
    日期转换方法
    toString返回包含时间信息的 stringV1.0.8
    toArray返回将日期转换数组V1.0.8
    toJSON返回序列化为 ISO 8601 格式的字符串V1.0.8
    toObject返回包含时间信息的 ObjectV1.0.8
    日期设置方法
    setYear设置日期的年份V1.0.8
    setMonth设置日期的月份V1.0.8
    setDate设置日期中月的某一天V1.0.8
    setHours设置日期的小时V1.0.8
    setMinutes设置日期的分钟数V1.0.8
    setSeconds设置日期的秒数V1.0.8
    setMilliseconds设置日期的毫秒数V1.0.8
    set设置年月日时分秒毫秒【根据参数设置】V1.0.8
    setStartOf设置到一个时间的开始V1.0.8
    setEndOf设置到一个时间的结束V1.0.8

    三、方法说明

    1、常规方法

    getYear

    • 功能:获取年份

    • 参数:无

    • 返回值:返回年份

    • 返回数据类型Number

    • 用法

      const newData = new Wdate()
      console.log(newData.getYear()) // 2022
      

    getMonth

    • 功能:获取月份

    • 参数:(isFillZero)

      参数名参数类型参数默认值参数说明
      isFillZeroBooleanfalse是否补0,小于10前边补零
    • 返回值:返回月份1-12|01-12

    • 返回数据类型Number|String

    • 用法

      const newData = new Wdate('2022-01-27 13:05:03')
      console.log(newData.getMonth()) // 1
      console.log(newData.getMonth(true)) // 01
      

    getDate

    • 功能:获取当月第几天

    • 参数:(isFillZero)

      参数名参数类型参数默认值参数说明
      isFillZeroBooleanfalse是否补0,小于10前边补零
    • 返回值:返回当月第几天1-31|01-31

    • 返回数据类型Number|String

    • 用法

      const newData = new Wdate('2022-01-27 13:05:03')
      console.log(newData.getDate()) // 27
      console.log(newData.getDate(true)) //27
      

    getHours

    • 功能:获取小时

    • 参数:(isFillZero, isTwentyFour)

      参数名参数类型参数默认值参数说明
      isFillZeroBooleanfalse是否补0,小于10前边补零
      isTwentyFourBooleantrue是否是24小时制
    • 返回值:返回小时0-24|00-24, 如果12小时制返回0-12|00-12

    • 返回数据类型Number|String

    • 用法

      const newData = new Wdate() // 当前日期2022年1月27日 13:05:03
      console.log(newData.getHours()) // 13 24小时制
      console.log(newData.getHours(false,false)) //1 12小时制不补零
      console.log(newData.getHours(true,false)) //01 12小时制补零
      

    getMinutes

    • 功能:获取分钟

    • 参数:(isFillZero)

      参数名参数类型参数默认值参数说明
      isFillZeroBooleanfalse是否补0,小于10前边补零
    • 返回值:返回分钟0-59|00-59

    • 返回数据类型Number|String

    • 用法

      const newData = new Wdate() // 当前日期2022年1月27日 13:05:03
      console.log(newData.getMinutes()) // 5
      console.log(newData.getMinutes(true)) // 05 不足10补0
      

    getSeconds

    • 功能:获取秒数

    • 参数:(isFillZero)

      参数名参数类型参数默认值参数说明
      isFillZeroBooleanfalse是否补0,天数小于10前边补零
    • 返回值:返回秒数0-59|00-59

    • 返回数据类型Number|String

    • 用法

      const newData = new Wdate() // 当前日期2022年1月27日 13:05:03
      console.log(newData.getSeconds()) // 3
      console.log(newData.getSeconds(true)) //03 不足10补0
      

    getMilliseconds

    • 功能:获取毫秒数

    • 参数:(isFillZero)

      参数名参数类型参数默认值参数说明
      isFillZeroBooleanfalse是否补0,天数小于10前边补零
    • 返回值:返回毫秒数0-999|00-999

    • 返回数据类型Number|String

    • 用法

      const newData = new Wdate(1643264411611)
      console.log(newData.getMilliseconds()) // 611
      

    getTime

    • 功能:获取时间戳

    • 参数:(length)

      参数名参数类型参数默认值参数说明
      lengthNumber1313毫秒、10秒
    • 返回值:返回时间戳毫秒、秒,返回数据类型:Number

    • 用法

      const newData = new Wdate('2008-02-01 10:02:02')
      console.log(newData.getTime()) // 1643265801333  毫秒13位
      console.log(newData.getTime(10)) // 1643265801 秒10位
      console.log(newData.getTime(12)) //传入参数非法
      

    getDay

    • 功能:返回星期

    • 参数:(isChinese)

      参数名参数类型参数默认值参数说明
      isChineseBooleantrue是否显示中文
    • 返回值:返回星期,返回数据类型:Number|String, Number 返回(0、1、2、3、4、5、6),0代表星期日, String返回大写(一、二、三、四、五、六、日)

    • 用法

      const newData = new Wdate() // 当前日期2022年1月27日 13:05:03
      console.log(newData.getDay()) // 四
      console.log(newData.getDay(false)) // 4
      

    get

    • 功能:设置指定年月日时分秒毫秒

    • 参数:(unit,isFillZero)

      参数名参数类型参数默认值参数说明
      unit*Numberdate设置的数值
      isFillZeroBooleantrue是否补0

      unit参数类型说明:

      ID参数值缩写说明
      1yeary
      2monthM(大写)
      3dated
      4hourH(大写)小时
      5minutem分钟
      6seconds秒钟
      7millisecondms毫秒
    • 用法

      const dateTime = "2022-04-14 12:22:32"
      console.log(new Wdate(dateTime).get('year')) // 2022
      console.log(new Wdate(dateTime).get('month')) // 4
      console.log(new Wdate(dateTime).get('month', true)) // 04   不足10前边补0
      console.log(new Wdate(dateTime).get('date')) // 14
      console.log(new Wdate(dateTime).get('hour')) // 12
      console.log(new Wdate(dateTime).get('minute')) // 22
      console.log(new Wdate(dateTime).get('second')) // 32
      console.log(new Wdate(dateTime).get('millisecond')) // 0
      

      unit缩写模式

      const dateTime = "2022-04-14 12:22:32"
      console.log(new Wdate(dateTime).get()) // 14 默认为天
      console.log(new Wdate(dateTime).get('y')) // 2022
      console.log(new Wdate(dateTime).get('M')) // 4
      console.log(new Wdate(dateTime).get('d')) // 14
      console.log(new Wdate(dateTime).get('H')) // 12
      console.log(new Wdate(dateTime).get('m')) // 22
      console.log(new Wdate(dateTime).get('s')) // 32
      console.log(new Wdate(dateTime).get('ms')) // 0
      

    2、扩展方法

    getMonthCountDay

    • 功能:获取当月总天数

    • 参数:无

    • 返回值:2月【28】、2月闰年【29】、4、6、9、11月【30】、1、3、5、7、8、10、12月【31】

    • 返回数据类型Number

    • 用法

      const newData = new Wdate('2008-02-01 10:02:02')
      console.log(newData.getMonthCountDay()) // 29
      
      const newData = new Wdate()
      console.log(newData.getMonthCountDay()) // 31
      

    getQuarter

    • 功能:获取季度

    • 参数:(forMartText)

      forMartText是自定义格式为一个长度为4的数组,数组下标0-3分别对应1-4季,最终返回自定义文案

      参数名参数类型参数默认值参数说明
      forMartTextArray自定义格式
    • 返回值:1-4, 1-3月返回1,4-6月返回2,7-9月返回3,10-12月返回4

    • 返回数据类型Number|String【自定义格式】

    • 用法

      const newData = new Wdate('2022-02-14 12:20:20')
      
      console.log(newData.getQuarter(['第一季度','第二季度','第三季度','第四季度'])) // 第一季度
      console.log(newData.getQuarter(['春','夏','秋','冬'])) // 春
      console.log(newData.getQuarter()) // 1
      

    getAge

    • 功能:获取年龄

    • 参数:无

    • 返回值:大于等于0的整数

    • 返回数据类型Number

    • 用法

      const newData = new Wdate('1992-04-24') 
      console.log(newData.getAge()) // 29
      
      const newData = new Wdate('1992-01-01') 
      console.log(newData.getAge()) // 30
      

    注意:实例化日期不能大于当前日期

    getCconstellation

    • 功能:获取星座

    • 参数:无

    • 返回值:12星座白羊座、金牛座、双子座、巨蟹座、狮子座、处女座、天秤座、天蝎座、射手座、摩羯座、水瓶座、双鱼座

    • 返回数据类型String

    • 星座和时间对应表:

      ID星座名称对应日期
      1水瓶座1.20 - 2.18
      2双鱼座2.19 - 3.20
      3白羊座3.21 - 4.19
      4金牛座4.20 - 5.20
      5双子座5.21 - 6.21
      6巨蟹座6.22 - 7.22
      7狮子座7.23 - 8.22
      8处女座8.23 - 9.22
      9天秤座9.23 - 10.23
      10天蝎座10.24 - 11.22
      11射手座11.23 - 12.21
      12摩羯座12.22 - 1.19
    • 用法

    const newData = new Wdate('1992-2-22')
    console.log(newData.getCconstellation()) // 双鱼座
    

    getDayOfYear

    • 功能:返回是当年的多少天

    • 参数:无

    • 返回值:1-366

    • 返回数据类型Number

    • 用法

      const newData = new Wdate('2022-01-05')
      console.log(newData.getDayOfYear()) // 5
      

    getAdd

    • 功能:返回增加一定时间的新时间

    • 参数:(size, unit, formart)

      format参数传值参考格式化数据方法

      参数名参数类型参数默认值参数说明
      sizeNumber0/ 如果为负数则同getSubtract方法一样大小
      unitStringdate类型
      formartStringyy-MM-dd HH:mm:ss格式化格式

      unit参数类型说明:

      ID参数值缩写说明
      1yeary
      2monthM(大写)
      3dated
      4hourH(大写)小时
      5minutem分钟
      6seconds秒钟
      7millisecondms毫秒
      8quarterQ(大写)
      9weekw
    • 返回值:格式化日期

    • 返回数据类型:String

    • 用法

      
      console.log(new Wdate('2022-02-22 12:12:12').getAdd(1, 'year') // 2023-02-22 12:12:12
      console.log(new Wdate('2022-02-22 12:12:12').getAdd(1, 'month')) // 2022-04-22 12:12:12
      console.log(new Wdate('2022-02-22 12:12:12').getAdd(1, 'date')) // 2022-02-23 12:12:12
      console.log(new Wdate('2022-02-22 12:12:12').getAdd(1, 'hour')) // 2022-02-22 13:12:12
      console.log(new Wdate('2022-02-22 12:12:12').getAdd(1, 'minute')) // 2022-02-22 12:13:12
      console.log(new Wdate('2022-02-22 12:12:12').getAdd(1, 'second')) // 2022-02-22 12:12:13
      console.log(new Wdate('2022-02-22 12:12:12').getAdd(2000, 'millisecond')) // 2022-02-22 12:12:14
      console.log(new Wdate('2022-02-22 12:12:12').getAdd(1, 'quarter')) // 2022-06-22 12:12:12
      console.log(new Wdate('2022-02-22 12:12:12').getAdd(1, 'week')) // 2022-03-01 12:12:12
      

    getSubtract

    • 功能:返回减少一定时间的新时间

    • 参数:(size, unit, formart)

      format参数传值参考格式化数据方法

      参数名参数类型参数默认值参数说明
      sizeNumber0/ 如果为负数则同getAdd方法一样大小
      unitStringdate类型
      formartStringyy-MM-dd HH:mm:ss格式化格式

      unit参数类型说明:

      ID参数值缩写说明
      1yeary
      2monthM(大写)
      3dated
      4hourH(大写)小时
      5minutem分钟
      6seconds秒钟
      7millisecondms毫秒
      8quarterQ(大写)
      9weekw
    • 返回值:格式化日期

    • 返回数据类型:String

    • 用法

      默认值天数
      console.log(new Wdate('2022-02-22 12:12:12').getAdd(10)) //2022-03-04 12:12:12
      
      传参模式
      console.log(new Wdate('2022-02-22 12:12:12').getSubtract(1, 'year')) // 2021-02-22 12:12:12
      console.log(new Wdate('2022-02-22 12:12:12').getSubtract(1, 'month')) // 2022-01-22 12:12:12
      console.log(new Wdate('2022-02-22 12:12:12').getSubtract(1, 'date')) // 2022-02-21 12:12:12
      console.log(new Wdate('2022-02-22 12:12:12').getSubtract(1, 'hour')) // 2022-02-22 11:12:12
      console.log(new Wdate('2022-02-22 12:12:12').getSubtract(1, 'minute')) // 2022-02-22 12:11:12
      console.log(new Wdate('2022-02-22 12:12:12').getSubtract(1, 'second')) // 2022-02-22 12:12:11
      console.log(new Wdate('2022-02-22 12:12:12').getSubtract(2000, 'millisecond')) // 2022-02-22 12:12:10
      console.log(new Wdate('2022-02-22 12:12:12').getSubtract(1, 'quarter')) // 2021-11-22 12:12:12
      console.log(new Wdate('2022-02-22 12:12:12').getSubtract(1, 'week')) // 2022-02-15 12:12:12
      缩写模式
      console.log(new Wdate('2022-02-22 12:12:12').getAdd(1, 'y')) // 2023-02-22 12:12:12
      console.log(new Wdate('2022-02-22 12:12:12').getAdd(1, 'M')) // 2022-04-22 12:12:12
      console.log(new Wdate('2022-02-22 12:12:12').getAdd(1, 'd')) // 2022-02-23 12:12:12
      console.log(new Wdate('2022-02-22 12:12:12').getAdd(1, 'H')) // 2022-02-22 13:12:12
      console.log(new Wdate('2022-02-22 12:12:12').getAdd(1, 'm')) // 2022-02-22 12:13:12
      console.log(new Wdate('2022-02-22 12:12:12').getAdd(1, 's')) // 2022-02-22 12:12:13
      console.log(new Wdate('2022-02-22 12:12:12').getAdd(2000, 'ms')) // 2022-02-22 12:12:14
      console.log(new Wdate('2022-02-22 12:12:12').getAdd(1, 'Q')) // 2022-06-22 12:12:12
      console.log(new Wdate('2022-02-22 12:12:12').getAdd(1, 'w')) // 2022-03-01 12:12:12
      

    getDateDiff

    • 功能:获取日期相减后的信息, 计算方法: 实例化日期 — 传入日期【参数dateTime】

    • 参数:(dateTime)

      format参数传值参考格式化数据方法

      参数名参数类型参数默认值参数说明
      dateTimeString|Number系统当前日期运算日期
    • 返回值:格式化日期

    • 返回数据类型:Object/String[两个日期相同]

    • 用法

      情景1: 比较日期相同

      console.log(new Wdate().getDateDiff()) // 两个日期相同
      

      情景2:实例化日期在传入日期之前

      console.log(new Wdate('2022-03-03 12:00:00').getDateDiff('2022-03-04 03:30:30'))
      // 打印结果
      {
        day: 0, // 总天数
        hours: 15,
        hoursCount: 15, // 总小时
        minutes: 30,
        seconds: 30,
        timestamp: -55830000 // 结果为负数
      }
      

      情景3:实例化日期在传入日期之后

      console.log(new Wdate('2022-03-03 12:00:00').getDateDiff('2022-03-02 03:30:30'))
      {
        day: 1,
        hours: 8,
        hoursCount: 32,
        minutes: 29,
        seconds: 30,
        timestamp: 116970000
      }
      

    getDiffDay

    • 功能:获取日期相减后自然天数(日期计算,不考虑时间), 计算方法: 实例化日期 — 传入日期【参数dateTime】

    • 参数:(dateTime)

      format参数传值参考格式化数据方法

      参数名参数类型参数默认值参数说明
      dateTimeString|Number系统当前日期运算日期
    • 返回值:格式化日期

    • 返回数据类型:Number

    • 用法

      情景1: 同一天

      console.log(new Wdate().getDiffDay()) // 0
      

      情景2:实例化日期在传入日期之前

      console.log(new Wdate('2022-03-03 12:00:00').getDiffDay('2022-03-04 03:30:30')) // -1
      

      情景2:实例化日期在传入日期之后

      console.log(new Wdate('2022-03-03 12:00:00').getDiffDay('2022-03-02 03:30:30')) // 1
      

    3、格式化数据方法

    getTimeFrame

    • 功能:根据时间段返回特定文案

    • 参数:(hour, text)

      hour和text数字长度必须一致,text定义时间范围的下标对应hour数字下标里面展示的内容

      参数名参数类型参数默认值参数说明
      hourArray[‘AM’, ‘PM’]定义显示文案
      textArray[{start: 0, end: 12},{start: 12, end: 24}]定义时间段范围
    • 返回值:AM,PM ,自定义文案

    • 返回数据类型:String

    • 用法

      const newData = new Wdate() // 当前日期2022年1月27日 13:05:03
      // 默认值
      text = ['AM', 'PM']
      hour = [{start: 0, end: 12},{start: 12, end: 24}
      console.log(newData.getTimeFrame()) // PM   
      

      自定义指定时间显示指定文案

      const newData = new Wdate()
      
      const text = ['凌晨', '早上', '上午', '中午', '下午', '晚上', '深夜']
      const hour = [
        { start: 0, end: 4 },
        { start: 4, end: 8 },
        { start: 8, end: 12 },
        { start: 12, end: 14 },
        { start: 14, end: 18 },
        { start: 18, end: 22 },
        { start: 22, end: 24 },
      ]
      console.log(newData.getTimeFrame(text, hour))
      

    getAllDate

    • 功能:格式化日期

    • 参数:(format,isFillZero)

      参数名参数类型参数默认值参数说明
      formatStringyy-MM-dd定义日期格式
      isFillZeroBooleantrue是否补0
    • 返回值:年-月-日、自定义格式

    • 返回数据类型String

    • 用法

      const newData = new Wdate()
      console.log(newData.getAllDate('yy年MM月dd日')) // 2022年01月27日
      console.log(newData.getAllDate('yy年MM月dd日',false)) // 2022年1月27日
      console.log(newData.getAllDate('MM月dd日')) //01月27日
      console.log(newData.getAllDate('yy年MM月')) //2022年01月
      

    getAllTime

    • 功能:格式化时间

    • 参数:(format,isFillZero)

      参数名参数类型参数默认值参数说明
      formatStringHH-mm-ss定义时间格式
      isFillZeroBooleantrue是否补0
    • 返回值:时:分:秒、自定义格式

    • 返回数据类型String

    • 用法

      const newData = new Wdate()
      console.log(newData.getAllTime('HH:mm:ss')) // 14:12:02
      console.log(newData.getAllTime('hh:mm:ss')) // 02:12:02
      console.log(newData.getAllTime('mm:ss')) // 12:02
      console.log(newData.getAllTime('HH:mm')) // 14:12
      

    getFormat

    • 功能:格式化日期时间

    • 参数:(format,isFillZero)

      参数名参数类型参数默认值参数说明
      formatStringyy-MM-dd HH:mm:ss定义日期时间格式
      isFillZeroBooleantrue是否补0
    • 返回值:年-月-日 时:分:秒、自定义格式

    • 返回数据类型String

    • 用法

      const newData = new Wdate()
      console.log(newData.getFormat()) // 2022-01-27 14:57:51 默认格式
      console.log(newData.getFormat('yy年')) // 2022年
      console.log(newData.getFormat('yy年MM月')) // 2022年01月
      console.log(newData.getFormat('yy年MM月dd日'))  // 2022年01月27日
      console.log(newData.getFormat('yy年MM月dd日', false))  //2022年1月27日 
      console.log(newData.getFormat('MM月yy年')) //01月2022年
      console.log(newData.getFormat('yy.MM.dd'))  //2022.01.27
      console.log(newData.getFormat('yy.MM.dd hh.mm.ss'))  // 2022.01.27 03:03:46
      console.log(newData.getFormat('yy.MM.dd hh时mm分ss秒 星期ww'))  // 2022.01.27 04时07分41秒 星期四
      console.log(newData.getFormat('yy.MM.dd hh时mm分ss秒 星期ww', false)) // 2022.1.27 4时7分41秒 星期四
      console.log(newData.getFormat('hh时mm分ss秒 星期ww'))  // 04时08分47秒 星期四
      console.log(newData.getFormat('星期ww hh时mm分ss秒')) // 星期四 04时08分47秒
      console.log(newData.getFormat('今天是dd日, HH时mm分'))  //今天是27日, 16时10分
      

    getFormatOne

    • 功能:格式化日期时间, 7天前日期显示日期时间格式、当天显示时间格式、7天内显示星期格式

    • 参数:(format,isFillZero)

      参数名参数类型参数默认值参数说明
      formatObject{
      sevenIn: ‘星期ww’,
      sevenOut: ‘yy-MM-dd HH:mm:ss’,
      today: ‘今天是HH:ss:mm’
      }
      定义7天前日期时间格式
      isFillZeroBooleantrue是否补0

      format参数说明:参数说明参考***format格式化日期字符说明***

      {
        sevenIn: '星期ww',  // 7天内时间显示格式
        sevenOut: 'yy-MM-dd HH:mm:ss', // 七天以外显示格式
        today: '今天是HH:ss:mm' // 当天显示格式
      }
      
    • 返回值:年-月-日 时:分:秒、星期一-星期日、时:分:秒/ 自定义格式

    • 返回数据类型String

    • 用法

      
      const newData = new Wdate()
      console.log(newData.getFormatOne()) // 15:26:36
      console.log(newData.getFormatOne({today: '今天是HH:ss:mm'})) // 今天是15:36:26
      
      const newData = new Wdate('2022-02-28 12:12:00')
      console.log(newData.getFormatOne({sevenIn: 'yy年MM月dd日'})) // 2022年02月28日
      
      const newData = new Wdate('2022-02-22 12:12:00')
      console.log(newData.getFormatOne({sevenOut: 'yy年MM月dd日 HH点mm分ss秒 周ww'})) // 2022年02月22日 12点12分00秒 周二
      

    getFuture

    • 功能:根据倒计时时间戳获取天、时、分、秒、时间戳

    • 参数

      参数名参数类型参数默认值参数说明
      timestampString无/未传值用实例化日期时间戳减去系统日期时间戳倒计时时间戳
    • 返回值

      { 
      	day: 2, // 天
      	hours: 23, // 小时
          hoursCount: 71 总小时
      	minutes: 57, // 分钟
      	seconds: 2, // 秒
      	timestamp: 259022746
      }
      
    • 返回数据类型Object

    • 用法

      主要用于做倒计时使用,根据倒计时的时间戳,格式化显示天、时、分、秒

      const newData = new Wdate()
      
      console.log(newData.getFuture(250000000))
      打印结果
      { day: 2, hours: 69, minutes: 26, seconds: 40, timestamp: 250000000 }
      
      不传参数,用实例化日期和当前日期相减计算取绝对值计算返回
      const newData = new Wdate('2022-02-28 17:01:00') // 时间戳13位
      
      console.log(newData.getFuture()) 
      console.log(new Date())
      {
        day: 2,
        hours: 23,
        hoursCount: 71,
        minutes: 57,
        seconds: 2,
        timestamp: 259022746
      }
      2022-02-25T09:03:57.262Z
      

    4、农历日期方法

    getLunarZodiac

    • 功能:获取农历生肖

    • 参数:无

    • 返回值:12生肖鼠、牛、虎、兔、龙、蛇、马、羊、猴、鸡、狗、猪

    • 返回数据类型String

    • 用法

      const newData = new Wdate('2022-02-27 14:12:02')
      console.log(newData.getLunarZodiac()) // 虎
      
      const newData = new Wdate('2022-01-27 14:12:02') // 系统当前时间
      console.log(newData.getLunarZodiac()) // 牛
      

      注意:大致根据农历正月初一以后进行判断,精确判断应该根据农历第一个节气

    getLunar

    • 功能:返回农历日期数字/汉字/干支/润月信息【返回1901-2099年农历日期信息】

    • 参数:无

    • 返回值

      {
        lunarYear: 2021, // 农历年
        lunarMonth: 12, // 农历月
        lunarDay: 25, // 农历日
        lunarYearCN: '二零二一', // 汉字表示农历年
        lunarMonthCN: '腊月', // 汉字表示农历月
        lunarDayCN: '廿十五', // 汉字表示农历日
        lunarLeapMonth: 0, // 当年润月份,0表示无闰月
        lunarIsLeapMonth: false, // 当年月是否是闰月
        lunarZodiac: '牛', // 农历生肖
        ganZhiYear: '辛丑', // 干支表示年
        ganZhiMonth: '辛丑', // 干支表示月
        ganZhiDay: '庚辰', // 干支表示日
        lunarHourCn: '未时' // 地址表示时辰
      }
      
    • 返回数据类型Object

    • 用法

      const newData = new Wdate() // 系统当前时间
      
      console.log(newData.getLunar())
      {
        lunarYear: 2022,
        lunarMonth: 1,
        lunarDay: 23,
        lunarYearCN: '二零二二',
        lunarMonthCN: '正月',
        lunarLeapMonth: 0,
        lunarIsLeapMonth: false,
        lunarDayCN: '廿十三',
        lunarZodiac: '虎',
        ganZhiYear: '壬寅',
        ganZhiMonth: '壬寅',
        ganZhiDay: '丁未',
        lunarHourCn: '巳时'
      }
      

    5、日期判断方法

    isValid

    • 功能:检验日期是否合法

    • 参数:(date, res)

      参数名参数类型参数默认值参数说明
      date*Any检验的日期
      resBooleanfalse结果为true, 返回new Date() 实例化的日期
    • 返回值:true/false/{ date: 2022-02-25T00:00:00.000Z, timestamp: 1645747200000, res: true }

    • 返回数据类型Boolean|Object

    • 用法

      console.log(newData.isValid('2022-02-25', true)) // { date: 2022-02-25T00:00:00.000Z, timestamp: 1645747200000, res: true }
      console.log(newData.isValid('2022-02-25')) // ture
      console.log(newData.isValid('2022-02-aa')) // falseisLeapYear
      

    isLeapYear

    • 功能:判断是否是闰年

    • 参数:无

    • 返回值:true/false

    • 返回数据类型Boolean

    • 用法

      const newData = new Wdate()
      console.log(newData.isLeapYear()) // false
      
      const newData = new Wdate('2008-01-01 10:02:02')
      console.log(newData.isLeapYear()) // true
      

    isBefore

    • 功能:判断传入日期是否在指定日期之前

    • 参数:(compareDate)

      参数名参数类型参数默认值参数说明
      compareDate*String比较的日期
    • 返回值:true/false

    • 返回数据类型Boolean

    • 用法

      const newData = new Wdate('2022-02-14 12:20:20') // 指定日期
      
      console.log(newData.isBefore('2022-02-14 12:20:19')) // true
      console.log(newData.isBefore('2022-02-14 12:20:22')) // false
      

    isSame

    • 功能:判断传入日期是否与指定日期相同

    • 参数:(compareDate)

      参数名参数类型参数默认值参数说明
      compareDate*String比较的日期
    • 返回值:true/false

    • 返回数据类型Boolean

    • 用法

      const newData = new Wdate('2022-02-14 12:20:20') // 指定日期
      
      console.log(newData.isSame('2022-02-14 12:20:20')) // 传入日期  true
      console.log(newData.isSame('2022-02-14 12:20:22')) // 传入日期  false
      

    isAfter

    • 功能:判断传入日期是否与指定日期之后

    • 参数:(compareDate)

      参数名参数类型参数默认值参数说明
      compareDate*String比较的日期
    • 返回值:true/false

    • 返回数据类型Boolean

    • 用法

      const newData = new Wdate('2022-02-14 12:20:20') // 指定日期
      
      console.log(newData.isAfter('2022-02-14 12:20:18')) // false
      console.log(newData.isAfter('2022-02-14 12:20:21')) // ture
      

    isBetween

    • 功能:判断指定日期是否在传入日期范围(大于等于开始时间,小于等于结束时间)

    • 参数:(startTime, endTime)

      日期支持格式和实例化参数日期格式一样

      参数名参数类型参数默认值参数说明
      startTime*String|Number范围开始时间
      endTime*String范围结束时间
    • 返回值:true/false

    • 返回数据类型Boolean

    • 用法

      console.log(new Wdate('2022-03-04 15:36:00').isBetween('2022-03-04 15:36:01', '2022-03-26 12:12:00')) // false
      console.log(new Wdate('2022-03-04 15:36:00').isBetween('2022-03-03 15:36:01', '2022-03-26 12:12:00')) // true
      console.log(new Wdate('2022-03-04 15:36:00').isBetween(1646379361000, 1648267920000)) // false
      console.log(new Wdate('2022-03-04 15:36:00').isBetween(1646292961000, 1648267920000)) // true
      

    isThisYear

    • 功能:判断是否当年

    • 参数:无

    • 返回值:true/false

    • 返回数据类型Boolean

    • 用法

      const newData = new Wdate('2022-02-24 17:09:00') 
      console.log(newData.isThisYear()) // ture
      
      const newData = new Wdate('2023-02-24 17:09:00') 
      console.log(newData.isThisYear()) // false
      

    isThisMonth

    • 功能:判断是否当月

    • 参数:无

    • 返回值:true/false

    • 返回数据类型Boolean

    • 用法

      const newData = new Wdate('2023-02-24 17:09:00') 
      console.log(newData.isThisMonth()) // false
      
      const newData = new Wdate('2022-02-24 17:09:00') 
      console.log(newData.isThisMonth()) // true
      

    isThisWeek

    • 功能:判断是否本周

    • 参数:无

    • 返回值:true/false

    • 返回数据类型Boolean

    • 用法

      const newData = new Wdate('2022-02-24 17:09:00') 
      console.log(newData.isThisWeek()) // true
      
      const newData = new Wdate('2022-02-28 17:09:00') 
      console.log(newData.isThisWeek()) // false
      

    isToday

    • 功能:判断是否是当天

    • 参数:无

    • 返回值:true/false

    • 返回数据类型Boolean

    • 用法

      const newData = new Wdate('2022-02-28 17:09:00') 
      console.log(newData.isToday()) // false
      
      const newData = new Wdate('2022-02-25 17:09:00') 
      console.log(newData.isToday()) // ture
      

    isWorkDay

    • 功能:判断是否是工作日、周末, 不考虑法定假日

    • 参数:无

    • 返回值:true/false

    • 返回数据类型Boolean

    • 用法

      const newData = new Wdate('2022-02-25 17:09:00') 
      console.log(newData.isWorkDay()) // true
      
      const newData = new Wdate('2022-02-26 17:09:00') 
      console.log(newData.isWorkDay()) // false
      

    6、日期转换方法

    toString

    • 功能:序列化为 ISO 8601 格式的字符串

    • 参数:无

    • 返回值:序列化格式的字符串

    • 返回数据类型String

    • 用法

      console.log(new Wdate(1646705779112).toString()) // Tue Mar 08 2022 10:16:19 GMT+0800 (新加坡标准时间)
      

    toArray

    • 功能:返回包含时间信息的 Array

    • 参数:(isFillZero)

      参数名参数类型参数默认值参数说明
      isFillZeroBooleanfalse是否补0
    • 返回值:时间信息的数组[‘年’,‘月’,‘日’,‘时’,‘分’,‘秒’,‘毫秒’]

    • 返回数据类型Array

    • 用法

      // 2022-03-08 10:16:19
      console.log(new Wdate(1646705779112).toArray()) // [2022, 3, 8, 10, 16, 19, 112]
      console.log(new Wdate(1646705779112).toArray(true)) // [ '2022', '03', '08', '10','16' ,'19', '112']
      

    toJSON

    • 功能:序列化为 ISO 8601 格式的字符串

    • 参数:无

    • 返回值:序列化格式的字符串

    • 返回数据类型String

    • 用法

      console.log(new Wdate().toJSON()) // 2022-03-08T02:11:18.764Z
      

    toObject

    • 功能:返回包含时间信息的 Object

    • 参数:(isFillZero)

      参数名参数类型参数默认值参数说明
      isFillZeroBooleanfalse是否补0
    • 返回值

      {
        year: 2022, // 年
        month: 1, // 月
        date: 27, // 日
        hours: 14, // 时
        minutes: 46, // 分
        seconds: 29, // 秒
        timestamp: 1643265989971 // 时间戳毫秒
      }
      
    • 返回数据类型Object

    • 用法

      console.log(new Wdate(1646705779112).toObject(true)) // 补零,所有值返回String
      打印结果:
      {
        year: '2022',
        month: '03',
        date: '08',
        hours: '10',
        minutes: '16',
        seconds: '19',
        timestamp: '1646705779112'
      }
      console.log(new Wdate(1646705779112).toObject()) // 默认不补零,所有值返回类型Number
      {
        year: 2022,
        month: 3,
        date: 8,
        hours: 10,
        minutes: 16,
        seconds: 19,
        timestamp: 1646705779112
      }
      

    7、设置方法

    以下所有set开头方法支持链式操作其他方法, 如果size传参错误,会抛出错误异常throw new Error('size参数错误');

    例:

    console.log(new Wdate('2022-03-08 12:12:12').set(2,'d').getFormat()) // 2022-03-02 12:12:12
    console.log(new Wdate('2022-03-08 12:12:12').set(2020,'y').getFormat('将2022年修改为:yy')) // 将2022年修改为:2020
    console.log(new Wdate('2022-03-08 12:12:12').set(2020,'y').getYear()) // 2022
    console.log(new Wdate('2022-03-08 12:12:12').setYear(2020).getYear()) // 2022
    

    setYear

    • 功能:设置日期的年份

    • 参数:(year)

      参数名参数类型参数默认值参数说明
      yearNumber0年份(年份参数只能在1970-2200年之间)
    • 用法

      console.log(new Wdate('2022-03-08 12:12:12').setYear(2).getYear()) // 抛出异常throw new Error('年份参数只能在1970-2200年之间')
      const newData = new Wdate('2022-03-08 12:12:12')
      newData.setYear(2020)
      console.log(newData.getYear()) // 2020
      链式操作:
      console.log(newData.setYear(2020).getYear()) // 2020
      

    setMonth

    • 功能:设置日期的月份

    • 参数:(month)

      参数名参数类型参数默认值参数说明
      monthNumber0月份期望值是 1-12,但允许其他值:
      0 将导致上一年的最后一个月
      13 将导致明年的第1个月
    • 用法

      console.log(new Wdate('2022-03-08 12:12:12').setMonth(2).getFormat()) // 2022-02-08 12:12:12
      console.log(new Wdate('2022-03-08 12:12:12').setMonth(-1).getFormat()) // 2021-11-08 12:12:12 上一年的第二个月
      console.log(new Wdate('2022-03-08 12:12:12').setMonth(13).getFormat()) // 2023-01-08 12:12:12 下一年的第一个月
      

    setDate

    • 功能:设置日期中月的某一天

    • 参数:(day)

      参数名参数类型参数默认值参数说明
      dayNumber0必需。整数,表示月中的某一天。
      预期值是 1-31,但允许其他值
      0 将导致上个月的最后一天
      -1 将导致上个月的最后一天的前一天
      如果一个月有 31 天:
      32 将导致下个月的第一天
      如果一个月有 30 天:
      32 将导致下个月的第二天
    • 用法

      console.log(new Wdate('2022-03-08 12:12:12').setDate(20).getFormat()) // 2022-03-20 12:12:12
      // 0 将导致上个月的最后一天
      console.log(new Wdate('2022-03-08 12:12:12').setDate(0).getFormat()) // 2022-02-28 12:12:12
      // -1 将导致上个月的最后一天的前一天
      console.log(new Wdate('2022-03-08 12:12:12').setDate(-1).getFormat()) // 2022-02-27 12:12:12
      // 如果一个月有 31 天:32 将导致下个月的第一天
      console.log(new Wdate('2022-03-08 12:12:12').setDate(32).getFormat()) // 2022-04-01 12:12:12
      // 如果一个月有 30 天32 将导致下个月的第二天
      console.log(new Wdate('2022-04-08 12:12:12').setDate(32).getFormat()) // 2022-05-02 12:12:12
      

    setHours

    • 功能:设置日期中的小时

    • 参数:(hour)

      参数名参数类型参数默认值参数说明
      hourNumber0表示小时的整数。
      期望值是 0-23,但允许其他值:
      -1 将导致前一天的最后一个小时
      24 将导致第二天的第一个小时
    • 用法

      console.log(new Wdate('2022-04-08 12:12:12').setHours(13).getFormat()) // 2022-04-08 13:12:12
      console.log(new Wdate('2022-04-08 12:12:12').setHours(0).getFormat()) // 2022-04-08 00:12:12
      // -1 将导致前一天的最后一个小时
      console.log(new Wdate('2022-04-08 12:12:12').setHours(-1).getFormat()) // 2022-04-07 23:12:12
      // 24 将导致第二天的第一个小时
      console.log(new Wdate('2022-04-08 12:12:12').setHours(24).getFormat()) // 2022-04-09 00:12:12
      

    setMinutes

    • 功能:设置日期中的分钟

    • 参数:(min)

      参数名参数类型参数默认值参数说明
      minNumber0表示分钟的整数
      期望值是 0-59,但允许其他值
      -1 将导致前一小时的最后一分钟
      60 将导致下一小时的第一分钟
    • 用法

      console.log(new Wdate('2022-04-08 12:12:12').setMinutes(25).getFormat()) // 2022-04-08 12:25:12
      console.log(new Wdate('2022-04-08 12:12:12').setMinutes(0).getFormat()) // 2022-04-08 12:00:12
      // -1 将导致前一小时的最后一分钟
      console.log(new Wdate('2022-04-08 12:12:12').setMinutes(-1).getFormat()) // 2022-04-08 11:59:12
      // 60 将导致下一小时的第一分钟
      console.log(new Wdate('2022-04-08 12:12:12').setMinutes(60).getFormat()) // 2022-04-08 13:00:12
      

    setSeconds

    • 功能:设置日期中的秒

    • 参数:(sec)

      参数名参数类型参数默认值参数说明
      secNumber0表示秒钟的整数
      预期值为 0-59,但允许其他值:
      -1 将导致前一分钟的最后一秒
      60 将导致下一分钟的第一秒
    • 用法

      console.log(new Wdate('2022-04-08 12:12:12').setSeconds(25).getFormat()) // 2022-04-08 12:12:25
      console.log(new Wdate('2022-04-08 12:12:12').setSeconds(0).getFormat()) // 2022-04-08 12:12:00
      // -1 将导致前一分钟的最后一秒
      console.log(new Wdate('2022-04-08 12:12:12').setSeconds(-1).getFormat()) // 2022-04-08 12:11:59
      // 60 将导致下一分钟的第一秒
      console.log(new Wdate('2022-04-08 12:12:12').setSeconds(60).getFormat()) // 2022-04-08 12:13:00
      

    setMilliseconds

    • 功能:设置日期中的毫秒

    • 参数:(millisec)

      参数名参数类型参数默认值参数说明
      millisecNumber0表示毫秒的整数
      预期值为 0-999,但允许其他值:
      -1 将导致前一秒的最后一毫秒
      1000 将导致下一秒的第一毫秒
    • 用法

      console.log(new Wdate('2022-04-08 12:12:12').setMilliseconds(25).toJSON()) // 2022-04-08T04:12:12.025Z
      console.log(new Wdate('2022-04-08 12:12:12').setMilliseconds(0).toJSON()) // 2022-04-08T04:12:12.000Z
      console.log(new Wdate('2022-04-08 12:12:12').setMilliseconds(-1).toJSON()) // 2022-04-08T04:12:11.999Z
      console.log(new Wdate('2022-04-08 12:12:12').setMilliseconds(1000).toJSON()) // 2022-04-08T04:12:13.000Z
      

    set

    • 功能:设置指定年月日时分秒毫秒

    • 参数:(size, unit)

      参数名参数类型参数默认值参数说明
      size*Number设置的数值
      unitStringdate 默认设置日单位

      unit参数类型说明:

      ID参数值缩写说明
      1yeary
      2monthM(大写)
      3dated
      4hourH(大写)小时
      5minutem分钟
      6seconds秒钟
      7millisecondms毫秒
    • 用法

      const dateTime = "2022-04-04 12:12:12"
      console.log(new Wdate(dateTime).set(2).getFormat()) // 2022-04-02 12:12:12
      console.log(new Wdate(dateTime).set(2020, 'year').getFormat()) //2020-04-04 12:12:12
      console.log(new Wdate(dateTime).set(11, 'month').getFormat()) // 2022-11-04 12:12:12
      console.log(new Wdate(dateTime).set(11, 'date').getFormat()) // 2022-04-11 12:12:12
      console.log(new Wdate(dateTime).set(11, 'hour').getFormat()) // 2022-04-04 11:12:12
      console.log(new Wdate(dateTime).set(11, 'minute').getFormat()) // 2022-04-04 12:11:12
      console.log(new Wdate(dateTime).set(11, 'second').getFormat()) // 2022-04-04 12:12:11
      console.log(new Wdate(dateTime).set(11, 'millisecond').toJSON()) // 2022-04-04T04:12:12.011Z
      

      unit缩写模式

      const dateTime = "2022-04-04 12:12:12"
      console.log(new Wdate(dateTime).set(2).getFormat())
      console.log(new Wdate(dateTime).set(2020, 'y').getFormat())
      console.log(new Wdate(dateTime).set(11, 'M').getFormat())
      console.log(new Wdate(dateTime).set(11, 'd').getFormat())
      console.log(new Wdate(dateTime).set(11, 'H').getFormat())
      console.log(new Wdate(dateTime).set(11, 'm').getFormat())
      console.log(new Wdate(dateTime).set(11, 's').getFormat())
      console.log(new Wdate(dateTime).set(11, 'ms').toJSON())
      

    setStartOf

    • 功能:设置时间为指定单位开始

    • 参数:(unit)

      参数名参数类型参数默认值参数说明
      unitStringyear单位

      unit参数类型说明:

      ID参数值缩写说明
      1yeary当年年1月1日上午 00:00
      2monthM(大写)当月月1日上午 00:00
      3dated当天 00:00
      4hourH(大写)当前时间,0 分、0 秒、0 毫秒
      5minutem当前时间,0 秒、0 毫秒
      6seconds当前时间,0 毫秒
      8quarterQ(大写)当季度第一个月1日上午 00:00
      9weekw当周的第一天上午 00:00【星期日为第一天】
      10weekMondaywm当周的第一天上午 00:00【星期一为第一天】
    • 用法

      const dateTime =1615004552333 // "2021-03-06 12:22:32 333"
      console.log(new Wdate(dateTime).getFormat('yy-MM-dd HH:mm:ss 毫秒ms 星期ww'))
      console.log(new Wdate(dateTime).setStartOf('y').getFormat('年:yy-MM-dd HH:mm:ss 毫秒ms 星期ww'))
      console.log(new Wdate(dateTime).setStartOf('M').getFormat('月:yy-MM-dd HH:mm:ss 毫秒ms 星期ww'))
      console.log(new Wdate(dateTime).setStartOf('d').getFormat('日:yy-MM-dd HH:mm:ss 毫秒ms 星期ww'))
      console.log(new Wdate(dateTime).setStartOf('Q').getFormat('季:yy-MM-dd HH:mm:ss 毫秒ms 星期ww'))
      console.log(new Wdate(dateTime).setStartOf('H').getFormat('时:yy-MM-dd HH:mm:ss 毫秒ms 星期ww'))
      console.log(new Wdate(dateTime).setStartOf('m').getFormat('分:yy-MM-dd HH:mm:ss 毫秒ms 星期ww'))
      console.log(new Wdate(dateTime).setStartOf('s').getFormat('秒:yy-MM-dd HH:mm:ss 毫秒ms 星期ww'))
      console.log(new Wdate(dateTime).setStartOf('w').getFormat('周[周日第一天]:yy-MM-dd HH:mm:ss 毫秒ms 星期ww'))
      console.log(new Wdate(dateTime).setStartOf('wm').getFormat('周[周一第一天]:yy-MM-dd HH:mm:ss 毫秒ms 星期ww'))
      // 2021-03-06 12:22:32 毫秒333 星期六 案例时间
      // 年:2021-01-01 00:00:00 毫秒0 星期五
      // 月:2021-03-01 00:00:00 毫秒0 星期一
      // 日:2021-03-06 00:00:00 毫秒0 星期六
      // 季:2021-01-01 00:00:00 毫秒0 星期五
      // 时:2021-03-06 12:00:00 毫秒0 星期六
      // 分:2021-03-06 12:22:00 毫秒0 星期六
      // 秒:2021-03-06 12:22:32 毫秒0 星期六
      // 周[周日第一天]:2021-02-28 00:00:00 毫秒0 星期日
      // 周[周一第一天]:2021-03-01 00:00:00 毫秒0 星期一
      

    setEndOf

    • 功能:设置时间为指定单位末尾

    • 参数:(unit)

      参数名参数类型参数默认值参数说明
      unitStringyear单位

      unit参数类型说明:

      ID参数值缩写说明
      1yeary当年年12月31日下午 23:59:59
      2monthM(大写)当月最后一天 23:59:59
      3dated当天 23:59:59
      4hourH(大写)当前时间,59 分、59 秒、999 毫秒
      5minutem当前时间,59秒、999 毫秒
      6seconds当前时间,999毫秒
      8quarterQ(大写)当季度第三个月最后一天日下午23:59:59
      9weekw当周最后一天下午23:59:59【星期日为第一天】
      10weekMondaywm当周最后一天下午23:59:59【星期一为第一天】
    • 用法

      const dateTime = 1646819487333 // "2022-03-06 12:22:32 333"
      console.log(new Wdate(dateTime).getFormat('yy-MM-dd HH:mm:ss 毫秒ms 星期ww'))
      console.log(new Wdate(dateTime).setEndOf('y').getFormat('年:yy-MM-dd HH:mm:ss 毫秒ms 星期ww'))
      console.log(new Wdate(dateTime).setEndOf('M').getFormat('月:yy-MM-dd HH:mm:ss 毫秒ms 星期ww'))
      console.log(new Wdate(dateTime).setEndOf('d').getFormat('日:yy-MM-dd HH:mm:ss 毫秒ms 星期ww'))
      console.log(new Wdate(dateTime).setEndOf('Q').getFormat('季:yy-MM-dd HH:mm:ss 毫秒ms 星期wwQ'))
      console.log(new Wdate(dateTime).setEndOf('H').getFormat('时:yy-MM-dd HH:mm:ss 毫秒ms 星期ww'))
      console.log(new Wdate(dateTime).setEndOf('m').getFormat('分:yy-MM-dd HH:mm:ss 毫秒ms 星期ww'))
      console.log(new Wdate(dateTime).setEndOf('s').getFormat('秒:yy-MM-dd HH:mm:ss 毫秒ms 星期ww'))
      console.log(new Wdate(dateTime).setEndOf('w').getFormat('周【周六为最后一天】:yy-MM-dd HH:mm:ss 毫秒ms 星期ww'))
      console.log(new Wdate(dateTime).setEndOf('wm').getFormat('周【周日为最后一天】:yy-MM-dd HH:mm:ss 毫秒ms 星期ww'))
      
      // 2022-03-09 17:51:27 毫秒333 星期三
      // 年:2022-12-31 23:59:59 毫秒999 星期六
      // 月:2022-03-31 23:59:59 毫秒999 星期四
      // 日:2022-03-09 23:59:59 毫秒999 星期三
      // 季:2022-03-31 23:59:59 毫秒999 星期四Q
      // 时:2022-03-09 17:59:59 毫秒999 星期三
      // 分:2022-03-09 17:51:59 毫秒999 星期三
      // 秒:2022-03-09 17:51:27 毫秒999 星期三
      // 周【周六为最后一天】:2022-03-12 23:59:59 毫秒999 星期六
      // 周【周日为最后一天】:2022-03-13 23:59:59 毫秒999 星期日
      

    四、版本更新记录

    V1.0.4

    ​ 添加了以下方法

    ​ isAfter() 判断日期是否在指定日期之前

    ​ isSame()判断日期是否等于指定日期

    ​ isBefore()判断日期是否在指定日期之后

    ​ isValid() 判断传入日期是否合法

    ​ getQuarter() 获取季度

    V1.0.5

    添加了以下方法

    ​ getLunarZodiac() 获取当年生肖

    ​ getLunar() 获取农历日期信息

    ​ getAge() 获取年龄

    ​ getCconstellation() 获取星座

    V1.0.6

    ​ 清楚日志console.log

    ​ 修改说明文档格式

    添加以下方法

    ​ isToday() 判断是否是当天

    ​ isThisYear() 判断是否是当年

    ​ isThisMonth() 判断是否当月

    ​ isThisWeek() 判断是否本周

    ​ isWorkday() 判断是否工作日/是否周末

    ​ getDayOfYear() 获取当天是当年的第几天

    V1.0.7

    ​ 说明文档排版优化

    ​ 修改getFormatOne传参

    ​ 代码压缩

    V1.0.8

    ​ 修改方法名称getAllDateTime 为 getFormat
    添加以下方法

    ​ isBetween() 判断时间是否在指定时间段

    ​ get() 返回年月日时分秒毫秒【根据参数返回】

    ​ getAdd() 返回日期加减天数的新日期

    ​ getDateDiff() 日期相差信息

    ​ getDiffDay() 日期相差自然天数

    ​ toString() 返回包含时间信息的 string

    ​ toArray() 返回将日期转换数组

    ​ toJSON() 返回序列化为 ISO 8601 格式的字符串

    ​ toObject() 返回包含时间信息的 Object

    ​ setYear() 设置日期的年份

    ​ setMonth() 设置日期的月份

    ​ setDate() 设置日期中月的某一天

    ​ setHours() 设置日期的小时

    ​ setMinutes() 设置日期的分钟数

    ​ setSeconds() 设置日期的秒数

    ​ setMilliseconds() 设置日期的毫秒数

    ​ set() 设置年月日时分秒毫秒【根据参数设置】

    展开全文
  • 错误: 小程序使用苹果手机进行时间格式化转成了NaN-NaN的格式, 解决方式 : 是因为苹果手机不支持2020-12-01 这种格式,需要将’-‘转成’/’ 2020/12/01就行了 且时间戳格式等不能存在.000格式 ...

    错误: 小程序使用苹果手机进行时间格式化转成了NaN-NaN的格式,
    解决方式 : 是因为苹果手机不支持2020-12-01 这种格式,需要将’-‘转成’/’ 2020/12/01就行了 且时间戳格式等不能存在.000格式

    展开全文
  • //时间格式化 function formatDate(date, fmt) { if (date == null || date == '' || date == undefined) return null; try { //解决ios手机时间格式化NAN问题 if(typeof(date) == "string" && date....

    这是之前做项目时遇到的问题,今天就总结、记录一下吧。

    一直都有在做手机端的项目(微信小程序、vue移动端),然后最初时,遇到苹果手机时间格式化"NAN"问题。当时一脸懵,后来上网查了下才知道问题所在。

    后台返回来的数据是createTime="2020-10-10 12:12:12"

    iphone手机是不能对这种格式的时间进行格式化,需要把-改成/,也就是"2020/10/10 12:12:12"。如下方法可以解决这个问题。调用:formatDate(time, "yyyy-MM-dd")

    //时间格式化
    function formatDate(date, fmt) { 
      if (date == null || date == '' || date == undefined)
        return null;
      try {
        //解决ios手机时间格式化NAN问题
        if(typeof(date) == "string" &&  date.indexOf('-') != -1){
          date = date.replace(/-/g,'/');
        }
        date = new Date(date);
      } catch (e) {
        date = date;
      }
      fmt = fmt ? fmt : 'yyyy-MM-dd';
      var o = {
        "M+": date.getMonth() + 1, //月份 
        "d+": date.getDate(), //日 
        "H+": date.getHours(), //小时 
        "m+": date.getMinutes(), //分
        "s+": date.getSeconds(), //秒 
        "q+": Math.floor((date.getMonth() + 3) / 3), //季度 
        "S": date.getMilliseconds() //毫秒 
      };
      if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (date.getFullYear() + "").substr(4 - RegExp.$1.length));
      for (var k in o)
        if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
      return fmt;
    }

     建议:为了避免这个问题,建议让后台返回的是时间戳

     

     

     

    展开全文
  • 原标题:苹果电脑上怎么进行格式化磁盘?我们在Windows系统上进行格式化磁盘非常方便,而在苹果电脑上,我们要进行苹果格式化操作则需要通过launchpad下的磁盘工具来进行,相对而言比较麻烦。而今天小编将要给大家...
  • 要将 2021-12-31 08:14:27转换成 2021-12-31的格式,使用了uView的{{('2021-12-31 08:14:27') | date('yyyy-mm-dd')}}格式化数据,在苹果手机上的效果是 NaN-NaN-NaN 解决方法 {{(new Date(''2021-12-31 08:14:27''....
  • thymeleaf 格式化日期

    2022-01-14 23:31:09
    thymeleaf 格式化日期 Datas类 thymeleaf用法 <td th:text="${#dates.format(hero.joinTime,'yyyy-MM-dd')}"></td> 第一个参数是数据,第二个参数输出的格式。 反编译可以看到是调用了DateUtils 工具...
  • export function formatTime (fmt, date) { date = new Date(date + '+08:00') // 兼容safari var o = { 'M+': date.getMonth() + 1, 'd+': date.getDate(), 'h+': date.getHours(), ...
  • MAC格式化移动硬盘

    2021-07-31 03:56:49
    答案1:先把数据备份出来,再进行格式化答案2:在mac上安装Mounty软件,通过这个软件可直接操作移动硬盘内容格式化步骤1.将移动硬盘插入mac电脑2.在Launchpad->其他->点击”磁盘工具”3.选择【移动硬盘】,再...
  • JS 时间格式化封装

    2019-05-16 19:56:30
    javascript 时间格式化 在前端应用开发中,难免会遇到进行时间格式化,一般遇到最多的情况就是时间戳,有了时间戳就可以转换为我们能看明白的时间;那么,为什么不封装一个方法供自己使用呢? /** * 在Date原型上...
  • js格式化日期和事件

    2022-03-12 10:55:54
    时间格式化
  • function formatDate(date, fmt) { if (date == null || date == '' || date == 'undefined') { return ''; } date = date + ''; date = date.replace(/\-/g, "/"); if (date.indexOf('GMT') == -1) { ...
  • ios日期格式引起的bug

    2021-05-28 10:44:16
    我们经常使用的日期格式为xxxx-xx-xx,在iOS系统中,对这种格式日期不识别,所以导致我们对日期进行操作计算的时候,虽然并不会报错,但是会导致结果错误,you shi hou hai zhao
  • ios使用如下方法获得NaN,安卓手机则是正常计算,解决方法是换个这个时间格式 new Date(2017-04-28 23:59:59).getTime() 换成如下方式就正常了,就是‘-‘换成‘/’ new Date(2017/04/28 23:59:59).getTime() ...
  • 如果后端返回的时间格式最好不要用formatTime这个方法来格式化时间,因为ios系统不支持2018-03-09这样格式的时间导致出现的这个问题,ios只识别2018/03/09这样的格式 注意两点即可:  1.苹果只认识 yyyy/mmmm/dddd/...
  • 在谷歌浏览器上使用new Date(str)来获取格式化时间数据支持的类型很多, 常用的格式如: 2021-9-16 2021-9-16 9:30:55 2021-09-16 08:54:34.421252+08 2021/9/16 ... 这些在谷歌等浏览器上都可以作为参数直接传入...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 41,833
精华内容 16,733
关键字:

苹果日期格式化