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
