是数字方式,不是字符方式
new Date(2011,1,1,1,1,1)
/*字符转日期*/StringToDate=function(DateStr){if(typeof DateStr=="undefined")return new Date()if(typeof DateStr=="date")return DateStrvar converted = Date.parse(DateStr)var myDate = new Date(converted)if(isNaN(myDate)){DateStr=DateStr.replace(/:/g,"-")DateStr=DateStr.replace(" ","-")DateStr=DateStr.replace(".","-")var arys= DateStr.split('-')switch(arys.length){case 7 : myDate = new Date(arys[0],--arys[1],arys[2],arys[3],arys[4],arys[5],arys[6])breakcase 6 : myDate = new Date(arys[0],--arys[1],arys[2],arys[3],arys[4],arys[5])breakdefault: myDate = new Date(arys[0],--arys[1],arys[2])break}}return myDate}
用这个转一下吧
"下午 "+hours -12加入时20:35
问题出在这里,由于有字符串,这里加号功能是字符串连接
结果是"下午8"-12
由于减号不支持字符串操作,只能尝试将"下午8"转换为数字,结果发现无法转换
因此就产生了NaN 意思是 not a number 。即 非数字。
因此这个表达式改为:"下午" + (hours - 12)即可
另外 写程序不需要莫名的一些括弧
timeValue = hours >12 ? "下午 " + (hours -12) : "上午 "+hours
这样写完全可以达到目的
也能让表达式看起来更清晰