javascript中Date对象与字符串之间的转换

  使用js中new Date()得到的Data对象转换为字符串之后往往未能符合我们想要的期望,今天我就“Date对象与字符串之间的转换”这个主题做一个简易的分析:

常见的转换方式有:

一、toString() —— 把 Date 对象转换为字符串

1 var str = new Date().toString();
2     console.log(str);
3 
4 //output:
5 //Mon Oct 12 2015 11:13:22 GMT+0800

二、toTimeString() —— 把 Date 对象的时间部分转换为字符串

1 var str = new Date().toTimeString();
2     console.log(str);
3 //output:
4 //11:16:31 GMT+0800

三、toDateString() —— 把 Date 对象的日期部分转换为字符串

1 var str = new Date().toDateString();
2     console.log(str);
3 //output:
4 //Mon Oct 12 2015

显而易见,以上三种方式的转换结果都未能达到我们的期望,需要进一步处理才能才能将Date对象转换为便于显示或与后台交互的时间字符串,如下:

定义函数:

 1 //定义将Date对象转换为字符串函数
 2 function timeToString(timeObj){
 3     var str = "";
 4     var year = timeObj.getFullYear();
 5     var month = timeObj.getMonth();
 6     var date = timeObj.getDate();
 7     var time = timeObj.toTimeString().split(" ")[0];
 8     var rex = new RegExp(/:/g);
 9     str = year+"-"+month+"-"+date+" "+time.replace(rex,"-");
10     console.log("------当前日期:"+str);
11     return str;
12 }
13 
14 //定义通过时间戳转换为字符串函数
15 function timeToObj(mstime){
16     var d = new Date();
17     d.setTime(mstime);
18     timeToString(d);
19 }

执行函数:

 1 //定义将Date对象转换为字符串函数
 2 var d = new Date();
 3 timeToString(d);
 4 //output:
 5 //------当前日期:2015-9-12 11-43-28
 6 
 7 //定义通过时间戳转换为字符串函数
 8 timeToObj(1444617383284);
 9 //output:
10 //------当前日期:2015-9-12 10-36-23

可以参考的Date对象API:

W3C Shcool JavaScript Date 对象 http://www.w3school.com.cn/jsref/jsref_obj_date.asp

总结:

  这个分析过程既是本人的一个实践应用总结,又是为浏览者提供一个解决此类相关问题的思路,纯属抛砖引玉,希望浏览者可以进行更深入的分析,并写出更加完整体系的转换规则。

 

posted @ 2015-10-12 11:57  __戏谑  阅读(2689)  评论(0编辑  收藏  举报