2017-07-21 56 views
1

我在使用日期字符串使用parseInt時遇到Nan錯誤。 我以字符串的形式得到finalRelease和Original Release值。我正在分裂價值,並嘗試使用索引訪問。如果是finalMonth,我會得到正確的月份,但在originalMonth的情況下會顯示Nan。使用parseInt函數時出現NaN錯誤

finalRelease = "2017-07-20" 
originalRelease = "2017-08-09" 
if(finalRelease!=null && originalRelease!=null) { 
     var finalDate = finalRelease.split('-'); 
     var originalDate = originalRelease.split('-'); 
     var finalMonth = parseInt(finalDate[1])-1; 
     var originalMonth = parseInt(originalDate[1])-1; 
+0

這似乎正常工作。你在哪裏得到錯誤? – Kamesh

+0

爲originalMonth,我越來越NaN –

+0

我在我的瀏覽器控制檯中運行它,它給我答案爲7.沒有問題。 – Kamesh

回答

3

確實,parseInt("08")在Google Apps腳本中返回NaN。這是因爲GAS作爲舊版本的JavaScript,consider the leading 0 as a sign of octal integer。補救辦法很簡單:

總是包含基數(通常爲10)與parseInt。

用途:

parseInt("08", 10): 
parseInt(originalDate[1], 10) - 1; 

不要使用:

parseInt("08"): 
parseInt(originalDate[1]) - 1; 
+0

謝謝亞歷克斯,它工作完美 –

0

下面是使用Number構造另一個簡短的表達方式:

var num = Number("08"); // 8.0