0

我有一个脚本,它根据一天中的时间编写 if else 语句。我在从 javascript 中的 Date() 函数创建时间戳时遇到了麻烦,不得不编写我认为非常冗长的代码。我首先必须创建一个正确的字符串(因为我需要“0”出现在数字 < 10 之前,以便我可以获得一个圆形时间数字,即 1204 表示 12:04,然后将 if else 语句基于该 concat 是奇怪,因为我首先必须解析它有一个字符串,然后将其解析为 int。

jsfiddlething

 var minExtra = min < 10 ? '0' + min : min;
 var intConcat = (hour).toString() + minExtra;
 var now = parseInt(intConcat);

我尝试寻找解决方案,但我认为我不是在寻找正确的术语

我的问题基本上是,这个 if else 语句是否可以在没有似乎冗长的代码的情况下编写,并且 if else 语句基于实际时间而不是时间的数字表示?

4

2 回答 2

4

这个小公式怎么样:

date.getHours() * 100 + date.getMinutes()
于 2013-08-30T10:35:17.383 回答
1

为了减少大部分冗长,您可以将您的方法重写为:

$('button').click(function () {
     var now = (function(){return this.getHours()*100 + this.getMinutes();})
                .call(new Date);
     alert( now < 1200 && '1' || now < 1300 && '2' || now < 1400 && '3')
});

提琴手

于 2013-08-30T10:47:24.613 回答