Js获取时间,当前,一周前,一月前的时间,时间戳转换,时间格式化,日期格式化
时间格式化参考:https://www.cnblogs.com/zhoushuang0426/p/10559172.html
js获取当前时间戳;指定时间转换时间戳;时间戳转换时间:参考https://blog.csdn.net/qq_37896578/article/details/90080953?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.add_param_isCf&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.add_param_isCf
当天0点的时间戳:
const timestamp = new Date( new Date(new Date().toLocaleDateString()).getTime() ).getTime() / 1000 console.log('-----') console.log(timestamp)
一周前的0点时间戳:
const timestamp = new Date( new Date(new Date().toLocaleDateString()).getTime() - 7 * 24 * 3600 * 1000 ).getTime() / 1000 console.log(timestamp)
当天的30天前的0点时间戳:
const timestamp = new Date( new Date(new Date().toLocaleDateString()).getTime() - 30 * 24 * 3600 * 1000 ).getTime() / 1000 console.log(timestamp)
在线时间戳转换工具:https://www.matools.com/timestamp
将时间戳转换为Y-m-d H:i:s格式:
export function timestampToTime(timestamp) { const date = new Date(timestamp * 1000) // 时间戳为10位需*1000,时间戳为13位的话不需乘1000 const year = date.getFullYear() const month = date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1 const day = date.getDate() < 10 ? '0' + date.getDate() : date.getDate() const hours = date.getHours() < 10 ? '0' + date.getHours() : date.getHours() const minutes = date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes() const seconds = date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds() return ( year + '-' + month + '-' + day + ' ' + hours + ':' + minutes + ':' + seconds ) }
FunGetDateStr: function (p_count) { var dd = new Date(); dd.setDate(dd.getDate() + p_count);//获取p_count天后的日期 var y = dd.getFullYear(); var m = dd.getMonth() + 1;//获取当前月份的日期 if( m <10){ m = '0'+m; } var d = dd.getDate(); if( d <10){ d = '0'+d; } return y + "-" + m + "-" + d; } var three = dates.FunGetDateStr(-3); $("#starttime").val(three);
获取距离当前时间12小时的每个时间段
["07:08", "08:08", "09:08", "10:08", "11:08", "12:08", "13:08", "14:08", "15:08", "16:08", "17:08", "18:08"]
// 需引入moment.js
// 获取当前时间的前12个小时的日期数组 export function getHoursArr() { const arr = [] for (let i = 0; i < 12; i++) { const unix = new Date(new Date().getTime() - i * 60 * 60 * 1000) const date = moment(unix).format('HH:mm') arr.push(date) } return arr }
将日期格式2018-09-10 08:00:00转化为时间戳:
//获取到的时间 var nowTime = '2018-09-11 13:50:52'; var thisTime = nowTime; thisTime = thisTime.replace(/-/g, '/'); var time = new Date(thisTime); time = time.getTime(); console.log(time); // 1536645052000
JS 日期格式和时间戳相互转化:
1. 将时间戳转换成日期格式:
function timestampToTime(timestamp) { var date = new Date(timestamp * 1000);//时间戳为10位需*1000,时间戳为13位的话不需乘1000 var Y = date.getFullYear() + '-'; var M = padding0(date.getMonth()+1,2)+ '-'; var D = padding0(date.getDate(),2)+ ' '; var h = padding0(date.getHours(),2) + ':'; var m = padding0(date.getMinutes(),2) + ':'; var s = padding0(date.getSeconds(),2); return Y+M+D+h+m+s; } timestampToTime(1561040280); console.log(timestampToTime(1561040280));//2019-06-17 22:18:54
注意:如果是Unix时间戳记得乘以1000。比如:PHP函数time()获得的时间戳就要乘以1000。
(padding0方法是数字前填充0 详见:https://blog.csdn.net/qq_29483485/article/details/81458856)
2、将日期格式转换成时间戳:
function getUnixTime(dateStr){ var newstr = dateStr.replace(/-/g,'/'); var date = new Date(newstr); var time_str = date.getTime().toString(); return time_str.substr(0, 10); } getUnixTime('2019-06-17 23:11:54'); console.log(getUnixTime('2019-06-17 23:11:54'));//1560784314
获得距离一个时间点偏移的时间点:
获得时间戳 - 偏移的时间戳:
比如获得距离当前11小时的时间戳:
const timeStamp = new Date().getTime() - 11 * 60 * 60 * 1000
转换成10位的字符串:
const timeStamp = (new Date().getTime() - 11 * 60 * 60 * 1000 + '').substr(0, 10)
距离当前 50分钟的时间戳:
const timeStamp = new Date().getTime() - 50 * 60 * 1000