拆分时间字符串

时间:2015-09-21 17:25:02

标签: jquery

好的,我已经拒绝发布这个问题,但我无法解释我得到的结果,所以这里是:

我已经获得军事格式的时间价值,比如16:00。从这里我需要3个不同的时间:

  • 给定前一小时,
  • 给定小时,
  • 给定的一小时后的小时

所以预期结果将是:

  • 15
  • 16
  • 17

`

var timeRes = $(this).data('time'),
timeGet = timeRes.split(':'),
hourGet = timeGet[0],
minsGet = timeGet[1],
hourBfo = (hourGet-1),
hourNxt = (hourGet++);`

然而,当我测试并输出以下内容时,似乎非常基本:

console.log(timeRes+' -- Get: '+timeGet + ' -- Bfo: '+hourBfo+' -- Now: '+hourGet+' -- Nxt: '+hourNxt+' -- Mins: '+minsGet);

我明白了:

  

16:00 - 获取:16,00 - Bfo:15 - 现在:17 - Nxt:16 - 分钟:00

注意,现在 Nxt 会被翻转。我错过了什么?...

3 个答案:

答案 0 :(得分:4)

这里有2个错误。首先,你应该将你的分割字符串转换为整数,因此在使用它们进行数学运算时没有奇怪的效果:

hourGet = parseInt(timeGet[0]), minsGet = parseInt(timeGet[1])

其次,hourNxt = (hourGet++)以这种方式运作:

  1. hourGet的当前值分配给hourNxt
  2. hourGet值增加1。
  3. 这就是你获得这些结果的原因。你在这里不需要++运营商(你不想改变hourGet,对吗?),只需使用普通的老人:

    hourNxt = hourGet + 1
    

答案 1 :(得分:0)

hourNxt = (hourGet++);基本上意味着"将hourNxt设置为hourGet当前的内容,然后将hourGet的值增加一个。"

你想要的是hourNxt = hourGet + 1

答案 2 :(得分:0)

我会做类似的事情:

var time = '16:00';
var hour = time.split(':')[0];
var previousHour = hour - 1;
var nextHour = hour + 1;

不同之处在于如果使用++运算符,您应该了解它是如何工作的。它基本上在命令完成后应用增量。所以,代码:

var i=7;
console.log(i++);
console.log(i);

将输出:     7     8

我希望这会有所帮助。

马里奥