常见的转换方式有:
一、toString()
—— 把 Date 对象转换为字符串
var str = new Date().toString();
console.log(str);
//output:
//Mon Oct 12 2015 11:13:22 GMT+0800
二、toTimeString()
—— 把 Date 对象的时间部分转换为字符串
var str = new Date().toTimeString();
console.log(str);
//output:
//11:16:31 GMT+0800
三、toDateString()
—— 把 Date 对象的日期部分转换为字符串
var str = new Date().toDateString();
console.log(str);
//output:
//Mon Oct 12 2015
显而易见,以上三种方式的转换结果都未能达到我们的期望,需要进一步处理才能才能将Date对象转换为便于显示或与后台交互的时间字符串,如下:
//定义将Date对象转换为字符串函数
function timeToString(timeObj){
var str = "";
var year = timeObj.getFullYear();
var month = timeObj.getMonth();
var date = timeObj.getDate();
var time = timeObj.toTimeString().split(" ")[0];
var rex = new RegExp(/:/g);
str = year+"-"+month+"-"+date+" "+time.replace(rex,"-");
console.log("------当前日期:"+str);
return str;
}
//定义通过时间戳转换为字符串函数
function timeToObj(mstime){
var d = new Date();
d.setTime(mstime);
timeToString(d);
}
//定义将Date对象转换为字符串函数
var d = new Date();
timeToString(d);
//output:
//------当前日期:2015-9-12 11-43-28
//定义通过时间戳转换为字符串函数
timeToObj(1444617383284);
//output:
//------当前日期:2015-9-12 10-36-23
var formatDateTime = function (date) {
var y = date.getFullYear();
var m = date.getMonth() + 1;
m = m < 10 ? ('0' + m) : m;
var d = date.getDate();
d = d < 10 ? ('0' + d) : d;
var h = date.getHours();
h=h < 10 ? ('0' + h) : h;
var minute = date.getMinutes();
minute = minute < 10 ? ('0' + minute) : minute;
var second=date.getSeconds();
second=second < 10 ? ('0' + second) : second;
return y + '-' + m + '-' + d+' '+h+':'+minute+':'+second;
}
//------当前日期:2015-9-12 10:36:23