# 引入

import {
  getMonthDay,
  getMonthDay2,
  isSameWeek,
  isSameDay,
  parseTime,
  getTimeAgo,
  getTimeAgoOrDate,
  getCountDownObj,
  getDayStartTimestamp,
  getDayEndTimeStamp
} from 't-comm';

// or

import {
  getMonthDay,
  getMonthDay2,
  isSameWeek,
  isSameDay,
  parseTime,
  getTimeAgo,
  getTimeAgoOrDate,
  getCountDownObj,
  getDayStartTimestamp,
  getDayEndTimeStamp
} from 't-comm/lib/date/index';

# getMonthDay(year, month)

描述

获取一个月有多少天 原理:new Date()第2个参数默认为1,就是每个月的1号,把它设置为0时, new Date()会返回上一个月的最后一天,然后通过getDate()方法得到天数

参数

参数名 类型 描述
year string

年份

month string

月份

返回: number

天数

示例

getMonthDay(2022, 2) // 28

getMonthDay(2022, 3) // 31

getMonthDay(2022, 4) // 30

# getMonthDay2(year, month)

描述

获取一个月有多少天

原理:把每月的天数写在数组中,再判断时闰年还是平年确定2月分的天数

参数

参数名 类型 描述
year string

年份

month string

月份

返回: number

天数

示例

getMonthDay2(2022, 2)
// 28

getMonthDay2(2022, 3)
// 31

getMonthDay2(2022, 4)
// 30

# isSameWeek(date1, date2)

描述

判断两个日期是否属于同一周

原理:把两个日期均转换到周一,比较转换后的两日期是否相同。

参数

参数名 类型 描述
date1 number

第1个时间戳

date2 number

第2个时间戳

返回: boolean

是否是同一周

示例

isSameWeek(1601308800000, 1601395200000)

// true

isSameWeek(1601308800000, 1601913600000)

// false

# isSameDay(date1, date2)

描述

判断是否是同一天

参数

参数名 类型 描述
date1 number

时间戳

date2 number

时间戳

返回:

是否相同

示例

isSameDay(1702613769418, 1702613769419) // true

# parseTime(time, cFormat)

描述

功能和上面的dateFormat/timeStampFormat类型,只是参数time可以接收多种类型,且参数cFormat用的是{y}形式

参数

参数名 类型 描述
time Object | string | number

输入日期

cFormat string

时间格式

返回: string | null

格式化后的日期字符串

示例

const date = new Date('2020-11-27 8:23:24');

const res = parseTime(date, 'yyyy-MM-dd hh:mm:ss')

// 2020-11-27 08:23:24

# getTimeAgo(timestamp)

描述

获取某个时间戳距离今天的时间

参数

参数名 类型
timestamp number

返回: string

距离今天的时间描述

示例

const date = new Date('2020-11-27 8:23:24').getTime();
getTimeAgo(date);
// 1个月前

const date2 = new Date('2021-11-27 8:23:24').getTime();
getTimeAgo(date2);
// 10个月后

# getTimeAgoOrDate(timestamp, format)

描述

功能:获取多久之前,若间隔超过一天,返回时刻描述

参数

参数名 类型 描述
timestamp number

时间戳

format string

时间格式

返回: string

距离今天的时间描述或者时刻描述

示例

getTimeAgoOrDate(Date.now() - 60 * 60 * 24 * 1 * 1000);
// 1天前

const date = new Date('2018-07-13 17:54:01').getTime();
getTimeAgoOrDate(date);
// 7月13日17时54分

# getCountDownObj(time, [maxUnit])

描述

倒计时(eg:距开赛1天)

参数

参数名 类型 描述
time string

剩余时间

[maxUnit] SECOND | MINUTE | HOUR | DAY

最大单位

返回: object

剩余时间的描述对象

示例

getCountDownObj(100)
// { day: 0, hour: 0, minute: 1, second: 40 }

getCountDownObj(1*24*60*60+200)
// { day: 1, hour: 0, minute: 3, second: 20 }

getCountDownObj(1 * 24 * 60 * 60 + 2 * 60 * 60 + 1 * 60 + 11, 'HOUR')
// 结果 =>
{
  fHour: '26',
  fMinute: '01',
  fSecond: '11',
  hour: 26,
  minute: 1,
  second: 11,
}

# getDayStartTimestamp(n)

描述

获取几天前的起始时间戳

参数

参数名 类型 描述
n boolean

几天前

返回: number

时间戳

# getDayEndTimeStamp(n, unit, endFlag)

描述

获取几天前的终止时间戳

参数

参数名 类型 描述
n boolean

几天前

unit string

返回时间戳的单位,默认是s(秒)

endFlag string

以什么单位作为结束时间,默认分钟,即23时59分0秒0毫秒

返回: number

时间戳

Last Updated: 2024/10/11 07:54:02