var str = "2010-08-01";
// 转换日期格式
str = str.replace(/-/g, '/'); // "2010/08/01";
// 创建日期对象
var date = new Date(str);
// 加一天
date.setDate(date.getDate() + 1);
扩展资料:
反之,日期格式化为字符串
//完整的格式化 var time2 = new Date().format("yyyy-MM-dd hh:mm:ss");
Date.prototype.format = function (fmt) {
var o = {
"M+": this.getMonth() + 1, //月份
"d+": this.getDate(), //日
"h+": this.getHours(), //小时
"m+": this.getMinutes(), //分
"s+": this.getSeconds(), //秒
"q+": Math.floor((this.getMonth() + 3) / 3), //季度
"S": this.getMilliseconds() //毫秒
};
//处理年份
var reYear = /(y+)/;
var resultYear = reYear.exec(fmt);
if (resultYear)
{
var yearformatPart = resultYear[0];//匹配到的格式化字符
var yearVal = (this.getFullYear() + "").substr(4 - yearformatPart.length);
fmt = fmt.replace(yearformatPart, yearVal);
}
for (var k in o) {
var re = new RegExp("(" + k + ")");
var re = re.exec(fmt);
if (re) {
var Val = "" + o[k];//本次需要替换的数据
var formatPart = re[0];//匹配到的格式化字符
var replaceVal = (formatPart.length == 1) ? (Val) : (("00" + Val).substr(Val.length));
fmt = fmt.replace(formatPart, replaceVal);
}
}
return fmt;
}
/*'yyyy-MM-dd HH:mm:ss'格式的字符串转日期*/
function stringToDate(str){
var tempStrs = str.split(" ");
var dateStrs = tempStrs[0].split("-");
var year = parseInt(dateStrs[0], 10);
var month = parseInt(dateStrs[1], 10) - 1;
var day = parseInt(dateStrs[2], 10);
var timeStrs = tempStrs[1].split(":");
var hour = parseInt(timeStrs [0], 10);
var minute = parseInt(timeStrs[1], 10);
var second = parseInt(timeStrs[2], 10);
var date = new Date(year, month, day, hour, minute, second);
return date;
}
调试好的代码如上。因为旧的采纳答案试过有错的,有两处地方要修改:
1)var timeStrs = tempStrs[1].split("-"), 自然是把"-"改为":"。
2)var minute = parseInt(timeStrs[1], 10) - 1; 分钟不需要减一了。
2017-04-18 · 百度知道合伙人官方认证企业
var s ='2017-04-18 09:16:15';
s = s.replace(/-/g,"/");
var date = new Date(s );
解释说明:
/-/g 是正则表达式
表示将所有短横线-替换为斜杠/
其中g表示全局替换
str = str.replace(/-/g,"/");
var date = new Date(str );