我们都知道直接使用 new Date() 获取到的是访问当前网站的客户机本地的时间,有的时候这个时间有可能因为人为修改,主板电池没电等原因导致获取到的时间不准确。因此,在开发中,需要获取当前时间进行操作,应该直接使用JS获取服务器的时间。
获取本地当前时间(时间戳):
var nowTime = new Date().getTime()/1000;
获取服务器当前时间(时间戳):
// 创建全局变量,也可以是局部的
var serverTime = ''
// 通过ajax访问服务器,获取服务器时间
$.ajax({
async: false,
type: "GET",
success: function(result, status, xhr) {
serverTime = new Date( xhr.getResponseHeader("Date"));
serverTime = (new Date(serverTime)).getTime() / 1000;
},
error: function (a) {
}
});
时间戳转换为日期格式:
var time, year, month, date, hours, minutes, seconds;
time = new Date();
year = time.getFullYear();
//以下是通过三元运算对日期进行处理,小于10的数在前面加上0
month = (time.getMonth() + 1) < 10 ? ("0" + (time.getMonth() + 1)) : (time.getMonth() + 1)
date = time.getDate() < 10 ? ("0" + time.getDate()) : time.getDate();
hours = time.getHours() < 10 ? ("0" + time.getHours()) : time.getHours();
minutes = (time.getMinutes() < 10 ? ("0" + time.getMinutes()) : time.getMinutes());
seconds = (time.getSeconds() < 10 ? ("0" + time.getSeconds()) : time.getSeconds());
//拼成自己想要的日期格式,2018-01-15 19:05:33
time = year + "-" + month + "-" + date + " " + hours + ":" + minutes + ":" + seconds;
console.log(time)
封装成方法:
function filterTime(time) {
var date = new Date(time)
var Y = date.getFullYear()
var M = date.getMonth() + 1 < 10 ? '0'+(date.getMonth()+1) : date.getMonth()+1
var D = date.getDate()
var hours = date.getHours() < 10 ? ("0" + date.getHours()) : date.getHours();
var minutes = (date.getMinutes() < 10 ? ("0" + date.getMinutes()) : date.getMinutes());
var seconds = (date.getSeconds() < 10 ? ("0" + date.getSeconds()) : date.getSeconds());
return `${Y}-${M}-${D} ${hours}:${minutes}:${seconds}`
}