我有一个包含YYYY-MM-DD格式日期的对象。
我正在提取不同的年份、月和日整数,以便将它们发送到不同的API。
下面是我的方法的一个例子,使用substr()
演示: http://jsfiddle.net/AppSynergy/tELsw/
好吧,起作用了。哦,不!-不-不太..。第三个元素有什么问题,4月8日的"08“决定为0?
如果我将"08“改为另一个整数,例如"03",就可以了。但是"08“引起了问题。
这件事快把我逼疯了-怎么了?
如果你能认出它,你就该吃冰淇淋。
发布于 2012-06-25 09:37:48
默认情况下,08被视为(无效) octal文本。
您必须在调用parseInt()中显式指定基数,以便将此令牌视为十进制(基数10)数字:
$("#debug").append(parseInt(date.substr(5, 2), 10) + " / ");发布于 2012-06-25 09:36:47
您需要将parseInt与10的基/基结合使用,因为前面的0用八进制符号来转换数字。
parseInt(yourNum, 10);由于这个原因,除非您没有使用基本的parseInt编号,否则在使用10时应该始终指定基。
发布于 2012-06-25 09:36:47
如果字符串以"0“开头,javascript将认为基数为8(八进制)。
您需要告诉javascript解析字符串的基数为10。
$.each(testData, function(i, val) {
// sort out the date format
var date = val.trim();
$('#debug').append(date+' ==><br />');
$('#debug').append(parseInt(date.substr(0, 4), 10)+' / ');
$('#debug').append(parseInt(date.substr(5, 2), 10)+' / ');
$('#debug').append(parseInt(date.substr(8, 2), 10)+'<br /><br />');
});https://stackoverflow.com/questions/11186751
复制相似问题