js 字符串转换为时间格式 20

Date.prototype.Format=function(fmt){varo={"M+":this.getMonth()+1,//月份"d+":this.getDat... 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()//毫秒
};
if(/(y+)/.test(fmt))
fmt=fmt.replace(RegExp.$1,(this.getFullYear()+"").substr(4-RegExp.$1.length));
for(var k in o)
if(new RegExp("("+k+")").test(fmt))
fmt=fmt.replace(RegExp.$1,(RegExp.$1.length==1)?(o[k]):(("00"+o[k]).substr((""+o[k]).length)));
return fmt;
}
var str = "2015-02-27";
console.log(new Date(str).Format("yyyy/MM/dd")); //这样的可以转换成2015/02/27

var str1 = "27-02-2015";
console.log(new Date(str1 ).Format("yyyy/MM/dd"));//这样得到结果就是“NaN/aN/aN”
请问怎么回事呢,谢谢
展开
 我来答
lyz810
推荐于2017-12-16 · 知道合伙人互联网行家
lyz810
知道合伙人互联网行家
采纳数:7531 获赞数:31779
前端开发工程师

向TA提问 私信TA
展开全部
new Date在不同浏览器中支持的写法都不同,最兼容的写法是yyyy/MM/dd

其他写法在部分浏览器中无法解析
如,IE7不支持(yyyy-MM-dd,只支持/分割)
chrome支持的种类很多
Firefox支持yyyy/M/d但不支持yyyy-M-d等
zero7u
2015-03-02 · TA获得超过238个赞
知道小有建树答主
回答量:171
采纳率:0%
帮助的人:156万
展开全部
在js里面,"27-02-2015"是非法的日期格式,所以new Date(str1) 这里就得到了一个非法的日期,后面再Format就出问题了。
NOTE:str1日期字符串应该更正为 "02-27-2015"
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式