我有一个实时跟踪当地时间的功能。我正在使用该new Date();
对象来获取当地的小时、分钟和秒。
我还希望用户提供一个函数必须在特定时间启动的输入。用户的输入是一个字符串(我不希望用户使用该Date();
对象,因为并非所有用户都可以编程)。例如:
输入用户:
var timeStart = "10:08:30";
直播时间转换为字符串:
var sTime = todayHours + ':' + todayMinutes + ':' + todaySeconds;
当两者相等时:
if(sTime == timeStart )
{
//function when equals time
//This function has a timeout, so it will run infinite times
var timeOutId = setTimeout(function()
{
//call functie
}, 10000); //every 10 seconds as example
}
好吧,这项工作就好了。我只能比较字符串是否相同。但是让它更复杂一点:我还希望用户给出一个结束时间,什么时候必须停止运行:
输入用户:
var timeEnd = "11:08:30";
直播时间转换为字符串:
var sTime = todayHours + ':' + todayMinutes + ':' + todaySeconds;
当两者相等时:
if( sTime == timeEnd)
{
//function when equals time
//calls the timeout id and stops it
clearTimeout(timeOutId);
}
现在这工作正常!但是现在你知道我想要做什么我想知道我是否可以以某种方式做:
if(sTime >= timeStart && sTime <= timeEnd)
{
//timeout will only be set when it's in between the given time
setTimeout(function()
{
//call functie
}, 10000); //every 10 seconds as example
}
问题
我有一种方法可以将我的字符串时间(使用 2 位数字方法)转换为现有的日期时间,以便我可以按时进行比较?
我的时间只使用[小时、分钟和秒],这会导致问题,因为没有定义日期(年、月和日)。
我尝试使用Momentjs,但它也拒绝仅使用小时、分钟和秒。或者我可能不知道如何做到这一点。
我想使用的方法似乎更容易,因为我不必定义何时取消timeOut
.
任何帮助表示赞赏!
Ps 我实际上只需要完成将字符串时间转换为unix 时间戳
(当然也欢迎其他方法)。