今天遇到一个关于JS的日期和时间戳相互转换的问题,在网上找了许久略有发现,自己写了两个方法,记录一下。
/**
* 返回给定时间部件的时间戳
*/
function dateToTimestamp(year, month, day, hours, minutes, seconds) {
var date = new Date();
year = year.length == 0 ? date.getFullYear() : year;
month = month.length == 0 ? date.getMonth() + 1 : month + 1;
day = day.length == 0 ? date.getDate() : day;
hours = hours.length == 0 ? date.getHours() : hours;
minutes = minutes.length == 0 ? date.getMinutes() : minutes;
seconds = seconds.length == 0 ? date.getSeconds() : seconds;
// console.log('year = ' + year + ' month = ' + month + ' day =' + day + ' hours = ' + hours + ' minutes=' + minutes + ' seconds = ' + seconds );
return Date.UTC(year, month, day, hours, minutes, seconds) / 1000 - 3600 * 8
}
/**
* 返回给定时间戳对应的日期格式
*/
function timestampToDate(timestamp, dateDelimiter, timeDelimiter) {
var date = new Date();
timestamp = timestamp == undefined ? date.getTime() : timestamp;
dateDelimiter = dateDelimiter == undefined ? '-' : dateDelimiter;
timeDelimiter = timeDelimiter== undefined ? ':' : timeDelimiter;
var newDate = new Date(parseInt(timestamp) * 1000);
var year = newDate.getFullYear();
var month = newDate.getMonth() < 10 ? '0' + newDate.getMonth() : newDate.getMonth();
var day = newDate.getDate() < 10 ? '0' + newDate.getDate() : newDate.getDate();
var hours = newDate.getHours() < 10 ? '0' +newDate.getHours() : newDate.getHours();
var minutes = newDate.getMinutes() < 10 ? '0' + newDate.getMinutes() : newDate.getMinutes();
var seconds = newDate.getSeconds() < 10 ? '0' + newDate.getSeconds() : newDate.getSeconds();
var fomateDateTime = year + ''+ dateDelimiter + '' + month + '' + dateDelimiter +''+ day + ' ' + hours + '' + timeDelimiter + '' + minutes +'' + timeDelimiter + '' + seconds
// console.log('fomateDateTime = ' +fomateDateTime);
return fomateDateTime;
}