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';

我收到的错误是:

语法错误:缺少;声明之前

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

为了响应您的评论并根据 Robrich 的输入进行更新,我更新了代码。

于 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 回答