我有一个脚本,它根据一天中的时间编写一个if-else语句。我在用javascript从Date()函数创建时间戳时遇到了问题,不得不编写我认为非常冗长的代码。我首先必须创建一个合适的字符串(因为我需要"0"出现在数字<10之前,这样我就可以得到一个整数,即12:04的1204,然后将if-else语句建立在那个奇怪的concat上,因为我首先必须解析它有一个字符串,然后将其解析为int。
jsfiddething
var minExtra = min < 10 ? '0' + min : min;
var intConcat = (hour).toString() + minExtra;
var now = parseInt(intConcat);
我试着寻找解决方案,但我不认为我在寻找正确的术语
我的问题基本上是,这个if-else语句是否可以在没有详细代码的情况下编写,并基于实际时间而不是时间的数字表示?
这个小公式怎么样:
date.getHours() * 100 + date.getMinutes()
为了减少大部分冗长,您可以将方法重写为:
$('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')
});
JsFiddle