javascript日期字符串和日期对象相互转换
HTML页面间需要传递日期和时间参数的时候,如果需要对日期字符串进行时间的运算,就需要先将日期字符串转换成JS日期对象。
在js中,yyyy-MM-dd HH:mm:ss格式的日期字符串不能用来直接构造JS日期对象,需要先做将“-”替换处理:
timeStr.replace(/-/g, '/');
具体实现如下:
// 给Number原型添加左边补位函数 Number.prototype.padLeft = function(lng, chr) { if (!lng) lng = 0; if (!chr) chr = '0'; var vStr = this.toString(); if (vStr.length > lng) { return vStr.substring(vStr.length - lng,vStr.length); } else if (vStr.length < lng) { var tnum = Math.pow(10,lng - vStr.length).toString(); return tnum.substring(1, tnum.length).replace("0",chr) + this.toString(); } return this.toString(); }; // 给Date原型添加转化成字符串格式yyyy-MM-dd HH:mm:ss函数 Date.prototype.toMyStr = function() { return this.getFullYear() + '-' + (this.getMonth() + 1).padLeft(2) + '-' + this.getDate().padLeft(2) + ' ' + this.getHours().padLeft(2) + ':' + this.getMinutes().padLeft(2) + ':' + this.getSeconds().padLeft(2); }; // 使用示例 // 日期字符串中含有空格能字符,HTML页面传递日期字符串时可以先用encodeURIComponent编码,在接收页面再用decodeURIComponent解码 var timeStr = '2015-09-07 13:40:36'; var ct = new Date(timeStr.replace(/-/g, '/')); var addHours = 13; ct.setHours(ct.getHours() + addHours); console.log(ct.toMyStr());
打印结果
2015-09-08 02:40:36
你的一点点建议或鼓励都是对我莫大的支持