FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
ChatLab/src/utils/dateFormat.ts at main · AfreyAwsome/ChatLab · GitHub
AfreyAwsome
/
ChatLab
Public
forked from
ChatLab/ChatLab
Notifications
You must be signed in to change notification settings
Fork
0
Star
0
Code
Pull requests
0
Actions
Projects
Security and quality
0
Insights
Additional navigation options
Code
Pull requests
Actions
Projects
Security and quality
Insights
Expand file tree
Breadcrumbs
ChatLab
/
src
/
utils
/
dateFormat.ts
Copy path
More file actions
More file actions
Latest commit
History
History
History
99 lines (91 loc) · 2.64 KB
Breadcrumbs
ChatLab
/
src
/
utils
/
dateFormat.ts
Copy path
File metadata and controls
99 lines (91 loc) · 2.64 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
import
dayjs
from
'dayjs'
/**
* 日期格式化工具函数
* 统一处理时间戳的格式化展示
*/
/**
* 格式化为日期 (YYYY-MM-DD)
*
@param
ts Unix 时间戳(秒)
*/
export
function
formatDate
(
ts
:
number
)
:
string
{
const
date
=
new
Date
(
ts
*
1000
)
const
year
=
date
.
getFullYear
(
)
const
month
=
String
(
date
.
getMonth
(
)
+
1
)
.
padStart
(
2
,
'0'
)
const
day
=
String
(
date
.
getDate
(
)
)
.
padStart
(
2
,
'0'
)
return
`
${
year
}
-
${
month
}
-
${
day
}
`
}
/**
* 格式化为日期时间 (YYYY-MM-DD HH:mm)
*
@param
ts Unix 时间戳(秒)
*/
export
function
formatDateTime
(
ts
:
number
)
:
string
{
const
date
=
new
Date
(
ts
*
1000
)
const
year
=
date
.
getFullYear
(
)
const
month
=
String
(
date
.
getMonth
(
)
+
1
)
.
padStart
(
2
,
'0'
)
const
day
=
String
(
date
.
getDate
(
)
)
.
padStart
(
2
,
'0'
)
const
hour
=
String
(
date
.
getHours
(
)
)
.
padStart
(
2
,
'0'
)
const
minute
=
String
(
date
.
getMinutes
(
)
)
.
padStart
(
2
,
'0'
)
return
`
${
year
}
-
${
month
}
-
${
day
}
${
hour
}
:
${
minute
}
`
}
/**
* 格式化为完整日期时间 (YYYY-MM-DD HH:mm:ss)
*
@param
ts Unix 时间戳(秒)
*/
export
function
formatFullDateTime
(
ts
:
number
)
:
string
{
return
dayjs
.
unix
(
ts
)
.
format
(
'YYYY-MM-DD HH:mm:ss'
)
}
/**
* 格式化时间段
*
@param
startTs 开始时间戳(秒)
*
@param
endTs 结束时间戳(秒),null 表示至今
*/
export
function
formatPeriod
(
startTs
:
number
,
endTs
:
number
|
null
)
:
string
{
const
start
=
formatDate
(
startTs
)
if
(
endTs
===
null
)
{
return
`
${
start
}
~ 至今`
}
const
end
=
formatDate
(
endTs
)
if
(
start
===
end
)
{
return
start
}
return
`
${
start
}
~
${
end
}
`
}
/**
* 格式化距今天数
*
@param
days 天数
*/
export
function
formatDaysSince
(
days
:
number
)
:
string
{
if
(
days
===
0
)
return
'今天'
if
(
days
===
1
)
return
'昨天'
if
(
days
<
30
)
return
`
${
days
}
天前`
if
(
days
<
365
)
return
`
${
Math
.
floor
(
days
/
30
)
}
个月前`
return
`
${
Math
.
floor
(
days
/
365
)
}
年前`
}
/**
* 使用 dayjs 格式化日期
*
@param
ts Unix 时间戳(秒)
*
@param
format 格式字符串
*/
export
function
formatWithDayjs
(
ts
:
number
,
format
:
string
)
:
string
{
return
dayjs
.
unix
(
ts
)
.
format
(
format
)
}
/**
* 格式化日期范围(支持自定义格式)
*
@param
startTs 开始时间戳(秒)
*
@param
endTs 结束时间戳(秒)
*
@param
format 日期格式,默认 'YYYY.MM.DD'
*
@param
separator 分隔符,默认 ' - '
*/
export
function
formatDateRange
(
startTs
:
number
,
endTs
:
number
,
format
:
string
=
'YYYY.MM.DD'
,
separator
:
string
=
' - '
)
:
string
{
const
start
=
dayjs
.
unix
(
startTs
)
.
format
(
format
)
const
end
=
dayjs
.
unix
(
endTs
)
.
format
(
format
)
if
(
start
===
end
)
{
return
start
}
return
`
${
start
}
${
separator
}
${
end
}
`
}
Back
|
FazBrowse Home
|
New Git URL