尝试将1添加到Split String

时间:2013-01-20 00:12:06

标签: jquery

如果时间少于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:missing;在陈述之前

     

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

它不喜欢[1]

这是否意味着如果我想对其进行任何操作,我必须先将WhenDateUnformatted[1]转换为单个变量?

谢谢! :)

编辑:我犯了一个错误,第一部分应该是

if (startTimeSPLIT[0] < 20) {

4 个答案:

答案 0 :(得分: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 :(得分:1)

WhenDateUnformatted [1]是一个字符串,而不是一个数字。添加1会产生奇怪的事情。请先parseInt(WhenDateUnformatted[1],10)将其设为数字​​。

答案 2 :(得分:1)

您在循环中使用var关键字在

行中声明了一个局部变量WhenDateUnformatted

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

这不可能是你想要做的......一旦在循环外,你的价值将保持不变。

答案 3 :(得分: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