0

時刻が20:00未満の場合は、その日ex: 2013-01-20 00:59:06に追加して、取得した日付を変更しようとしています。+1その理由は、取得された時間が20:00未満の場合、それは00:00から07:00の間のどこかにある必要があることを意味します。つまり、翌日です。

これが私がしたことです:

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:欠落; ステートメントの前

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

それは好きではありません[1]

WhenDateUnformatted[1]それは、何かをしたい場合、最初に個々の変数に変換する必要があることを意味しますか?

ありがとう!:)

編集:私は間違いを犯しました、最初の部分は

if (startTimeSPLIT[0] < 20) {
4

4 に答える 4

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();
}

あなたのコメントに応えて、そしてロブリッチの入力に従って更新するために、私はコードを更新しました。

于 2013-01-20T00:14:55.350 に答える
1

WhenDateUnformatted [1]は文字列であり、数値ではありません。それに1を加えると、奇妙なことが起こります。parseInt(WhenDateUnformatted[1],10)最初にそれを数字にしてみてください。

于 2013-01-20T00:15:30.800 に答える
1

行でvarキーワードを使用して、ループ内でローカル変数WhenDateUnformattedを宣言しています

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

それはあなたがやろうとしていることではありません...ループの外に出ると、値は変更されません。

于 2013-01-20T00:16:44.567 に答える
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]++; */

Javascript 配列をマスターする

于 2013-01-20T00:20:41.350 に答える