js将时间戳转为日期格式
推荐一个JavaScript常用函数库 jutils
其中的formatDate(javascript时间戳转换)函数支持自定义格式,可以显示年,月,周,日,时,分,秒多种形式的日期和时间。
例:
输出格式为 =>年、月、日、时、分、秒
var date = jutils.formatDate(new Date(1533686888*1000),"YYYY-MM-DD HH:ii:ss")console.log(date)
// 2019-07-09 19:44:01
更多自定义返回格式可以参照:
一行js代码实现时间戳转时间格式
下面是相关源码的截图
js将时间戳转为日期格式
一.js将时间转换成时间戳1.js获取当前时间戳的方法
?
1
2
3
var timestamp1 = Date.parse(new Date())
var timestamp2 = (new Date()).valueOf()
var timestamp3 = new Date().getTime()
第一种:获取的时间戳是把毫秒改成000显示,第二种和第三种是获取了当前毫秒的时间戳。
2.js获取制定时间戳的方法
?
1
2
var oldTime = (new Date("2015/06/23 08:00:20")).getTime()/1000
getTime()返回数值的单位是毫秒。
二.js把时间戳转为为普通日期格式
1.Date toLocaleString方法
?
1
2
3
function getLocalTime(nS) {
return new Date(parseInt(nS) * 1000).toLocaleString().replace(/:\d{1,2}$/,' ')
}
parseInt() 函数可解析一个字符串,并返回一个整数。
js中时间操作单位是毫秒。
toLocaleString() 方法可根据本地时间把 Date 对象转换为字符串,并返回结果。
replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。
replace(/:\d{1,2}$/,' ')验证替换以:开始有一位或二位数字的结束字符串,就是秒;替换为空
显示如下:
所以我们可以利用正则表达式改变我们想要的日期格式。
2.Date 属性方法
?
1
2
3
4
5
6
7
8
9
10
11
12
13
function add0(m){return m<10?'0'+m:m }
function format(shijianchuo)
{
//shijianchuo是整数,否则要parseInt转换
var time = new Date(shijianchuo)
var y = time.getFullYear()
var m = time.getMonth()+1
var d = time.getDate()
var h = time.getHours()
var mm = time.getMinutes()
var s = time.getSeconds()
return y+'-'+add0(m)+'-'+add0(d)+' '+add0(h)+':'+add0(mm)+':'+add0(s)
}
三.封装的时间格式器
?
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
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
/**
* 和PHP一样的时间戳格式化函数
* @param {string} format 格式
* @param {int} timestamp 要格式化的时间 默认为当前时间
* @return {string} 格式化的时间字符串
*/
function date(format, timestamp){
var a, jsdate=((timestamp) ? new Date(timestamp*1000) : new Date())
var pad = function(n, c){
if((n = n + "").length <c){
return new Array(++c - n.length).join("0") + n
} else {
return n
js中传入指定日期转换为时间戳,可以使用原生javascript的Date对象进行格式化操作或第三方js库如moment.js进行格式化输出。以下是这2种方法的具体实现:
1、使用原生javascript的Date对象,进行格式化
(1)将日期字符串转换为Date类型的对象。
let d = new Date('2018-01-01')
(2)转换为时间戳。
let t = d.getTime(d) // 方法1
let t = d.valueOf(d) // 方法2
let t = d.parse(d) // 方法3
2、第三方js库moment.js进行格式化
(1)在html中引入moment.js,添加以下script标签:
<script src="https://cdn.bootcss.com/moment.js/2.20.1/moment.js"></script>
(2)将日期转换为时间戳
参数格式为:YYYY-MM-DD HH:mm:ss 或 YYYY-MM-DD
moment('2018-01-01').valueOf()
扩展资料:
1、js将当前日期转换为时间戳
let timeStamp = new Date().getTime()
2、js将时间戳转换为日期
let d = new Date(timestamp * 1000)// 时间戳为10位需*1000,时间戳为13位的话不需乘1000
let yyyy = d.getFullYear() + '-'
let MM = (d.getMonth()+1 <10 ? '0'+(d.getMonth()+1) : d.getMonth()+1) + '-'
let dd = d.getDate() + ' '
let HH = d.getHours() + ':'
let mm = d.getMinutes() + ':'
let ss = d.getSeconds()
return yyyy + MM + dd + HH + mm + ss
参考资料来源:JavaScript标准库-Date