如果时间少于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) {
答案 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 强>