可以使用日期 JavaScript 字符串
Working with date javascript strings, possible?
我有一个跟踪本地时间的功能。我正在使用 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
。
任何帮助不胜感激!
P.s我实际上只需要完成的是将字符串时间转换为unix时间戳
(当然也欢迎其他方法)。
时刻.js但你仍然可以使用基本的parseInt来提取时间,将其转换为和整数,以便您可以将其与另一个进行比较:
function stringtime_to_seconds(aString){
var time,a = aString.split(":");
switch(a.length){
default: // 3 , you'll need to handle other cases
time = parseInt(a[0])*3600+parseInt(a[1])*60+parseInt(a[2]);
}
return time;
}
然后,您可以比较日期。
我尝试使用Momentjs,但它也拒绝只使用小时,分钟和秒。或者我可能不会更擅长如何做到这一点。
...
我实际上只需要完成的是将字符串时间转换为 unix 时间戳
您只需要提供格式字符串,例如:
// parse the input
var timeStart = "10:08:30";
var m = moment(timeStart,"HH:mm:ss");
// then one of these
var s = m.unix(); // unix time in seconds
var ms = m.valueOf(); // unix time in milliseconds
当然,要获得 unix 时间,您必须牢记一个特定的日期。 使用上述方法,它将使用本地时区的"今天"。 如果您的范围跨越午夜,例如晚上 10 点到凌晨 2 点,这可能是一个问题,因此您可能需要进行调整。
另外,你说你正在做一个范围比较,比如:
if(sTime >= timeStart && sTime <= timeEnd)
您可能不应该使用字符串执行此操作。 但是,您应该使用半开放间隔[start,end)
。 换句话说:
if(sTime >= timeStart && sTime < timeEnd)
通常,当有人说 1:00 到 2:00 时,他们的意思是范围在 2:00 结束。
- 将DOM节点值与字符串Javascript进行比较
- 到UpperCase字符串Javascript中的特定字符索引
- 替换字符串javascript中的所有特殊字符..
- 在数组中查找某些字符串(Javascript)
- 解析特定的字符串Javascript(Node.js)
- 从字符串 JavaScript 中过滤多个正则表达式
- 在字符串 JavaScript 中使用正则表达式替换
- 忽略字符串javascript中的字符
- 如何检查url是否包含多个字符串.Javascript/jquery
- 截断字符串JavaScript
- 计算字符串javascript中的某些单词
- 从'获取本月的最后一天;2015-02-23'字符串(javascript)
- 从字符串javascript中获取键值对
- 从路径字符串 - Javascript 获取所有父路径
- 在字符串Javascript中查找丢失的字母
- AngularJS:如何使所有ng模型都是字符串.JavaScript和长整数
- 将浮点转换为至少有一个小数点的字符串(javascript)
- 替换字符串 JavaScript 中的多个文本
- 检查另一个字符串 JavaScript 中一个字符串是否有任何字符的最佳方法
- 将变量的值包含在 href 字符串 javascript 中