2013-01-20 69 views
0

我試圖修改檢索日期ex: 2013-01-20 00:59:06,如果時間小於20:00,則在當天添加+1。原因是,如果檢索時間少於20:00,則意味着它必須在00:00到07:00之間,這意味着它是第二天。嘗試添加1到分割字符串

這裏是我做過什麼:

var WhenDateUnformatted = $('#when').val().split('/'); 
var startTimeSPLIT = startTime.split(':'); 

if (WhenDateUnformatted[1] < 20) { 
var WhenDateUnformatted[1] = WhenDateUnformatted[1] + 1; 
} 

var WhenDate = WhenDateUnformatted[2] + '-' + WhenDateUnformatted[0] + '-' + WhenDateUnformatted[1] + ' ' + startTime + ':00'; 

我收到的錯誤是:

SyntaxError: missing ; before statement

var WhenDateUnformatted[1] = WhenDateUnformatted[1] + 1;

它不喜歡的[1]

這是否意味着我必須WhenDateUnformatted[1]轉換爲如果我想對它做任何事情,首先需要一個變量?

謝謝! :)

編輯:我犯了一個錯誤,第一部分應該是

if (startTimeSPLIT[0] < 20) { 

回答

1

您重新申報WhenDateUnformatted。只需在你的if語句中爲它賦值。

var WhenDateUnformatted = $('#when').val().split('/'); 
var startTimeSPLIT = startTime.split(':'); 

var parsedWhenDateUnformatted = parseInt(WhenDateUnformatted[1],10); 
if (parsedWhenDateUnformatted < 20) { 
    WhenDateUnformatted[1] = (parsedWhenDateUnformatted + 1).toString(); 
} 

爲了迴應您的意見並根據Robrich的意見進行更新,我更新了代碼。

1

WhenDateUnformatted [1]是一個字符串,而不是數字。給它添加1確實很奇怪。嘗試parseInt(WhenDateUnformatted[1],10)使其成爲第一個數字。

+0

謝謝!我是否在'if'之前聲明? – pufAmuf

+0

把它放在像這樣的'if'裏面'parseInt(WhenDateUnformatted [1],10)= WhenDateUnformatted [1] + 1;'導致這個錯誤:'ReferenceError:無效賦值左邊' – pufAmuf

+0

是的,一個具有此值的新變量 - 可能比每次比較數組條目都要容易一些。 – robrich

1

你是外循環聲明一個局部變量WhenDateUnformatted你的循環使用var關鍵字,在該行

var WhenDateUnformatted[1] = WhenDateUnformatted[1] + 1;

那不可能是你正在嘗試做內...一次你的價值將保持不變。

1
// This is bad 
var arr = [] /* or whatever*/; 
var arr[1] = arr[1] + 1; 

// This is good 
var arr = [] /* or whatever*/; 
arr[1] = arr[1] + 1; /* Or simply: arr[1]++; */ 

Mastering Javascript Arrays