标签:
使用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
总结:
这个分析过程既是本人的一个实践应用总结,又是为浏览者提供一个解决此类相关问题的思路,纯属抛砖引玉,希望浏览者可以进行更深入的分析,并写出更加完整体系的转换规则。
标签:
原文地址:http://www.cnblogs.com/eric-cui/p/4871231.html