Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 制作带有日期和时间的闹钟_Javascript_Date_Time - Fatal编程技术网

Javascript 制作带有日期和时间的闹钟

Javascript 制作带有日期和时间的闹钟,javascript,date,time,Javascript,Date,Time,我正在试着做一个闹钟,当闹钟响的时候它会发出声音。例如,我设置了报警开始时间为18:00:00,当前时间为17:59:00,因此基本上报警应该在1分钟内触发 我试着这样做 var x = '18:00:00'; var t = new Date(x) - new Date(); setTimeout(function(){ alert("Hello"); }, t); 这不管用,不知道为什么。错误为NaN。您的问题是x的定义方式。代码背后的逻辑是可靠的,但是您需要使用一些合理的智能日期时间操作

我正在试着做一个闹钟,当闹钟响的时候它会发出声音。例如,我设置了报警开始时间为18:00:00,当前时间为17:59:00,因此基本上报警应该在1分钟内触发

我试着这样做

var x = '18:00:00';
var t = new Date(x) - new Date();
setTimeout(function(){ alert("Hello"); }, t);

这不管用,不知道为什么。错误为NaN。

您的问题是x的定义方式。代码背后的逻辑是可靠的,但是您需要使用一些合理的智能日期时间操作来实现这一点。例如,让我们将警报设置为从页面加载时起5秒:

x=新日期; x、 setSecondsx.getSeconds+5; var t=新日期x-新日期;
setTimeoutfunction{alertHello;},t 你的问题是x的定义方式。代码背后的逻辑是可靠的,但是您需要使用一些合理的智能日期时间操作来实现这一点。例如,让我们将警报设置为从页面加载时起5秒:

x=新日期; x、 setSecondsx.getSeconds+5; var t=新日期x-新日期; setTimeoutfunction{alertHello;},t 大概是这样的:

var start = '2017/03/11 12:00:00';
var end = '2017/03/11 12:00:02';

// time in milliseconds:
var time =  Math.abs(new Date(start) - new Date(end));

setTimeout(function(){ 
    alert("Hello"); 
}, time);
大概是这样的:

var start = '2017/03/11 12:00:00';
var end = '2017/03/11 12:00:02';

// time in milliseconds:
var time =  Math.abs(new Date(start) - new Date(end));

setTimeout(function(){ 
    alert("Hello"); 
}, time);

我希望这将给你一个关于你现在有什么和你可能如何做的清晰的看法,但有很多方法可以做到这一点,我只是想让你更容易

设x=01:10:30//您将传递的任何值 let date1=新日期; //将x字符串拆分为小时、分钟和秒 date1.setHoursx.split:[0]//固定时间 date1.setMinutesx.split:[1]//设定分钟数 date1.setSecondsx.split:[2]//设定秒数 设t=date1—新日期;
setTimeoutfunction{alert'Hello'},t我希望这能让你清楚地了解你现在拥有的东西以及你可能如何做到这一点,但是有很多方法可以做到这一点,我只是想让你更容易

设x=01:10:30//您将传递的任何值 let date1=新日期; //将x字符串拆分为小时、分钟和秒 date1.setHoursx.split:[0]//固定时间 date1.setMinutesx.split:[1]//设定分钟数 date1.setSecondsx.split:[2]//设定秒数 设t=date1—新日期;

setTimeoutfunction{alert'Hello'},tyour var x甚至不是一个会导致未定义令牌的字符串。您在编程JS时是否使用开发人员控制台?@Roljhon抱歉,我无法正确粘贴它,改变it@RokoC.Buljan我知道你的var x甚至不是一个字符串,这将导致未定义的令牌。你在编程JS时使用开发者控制台吗?@Roljhon抱歉,我无法正确粘贴它,更改了it@RokoC.Buljan我知道为什么我要用开始日期?开始日期不能只是新的日期吗?这是一个很好的选择,数学。abs是一个非常聪明的主意@如果您想从解决方案中减去日期,MasnadNihit就是一个很好的例子:@MattWebb非常感谢您的帮助!!!我现在更明白了为什么我必须使用开始日期?开始日期不能只是新的日期吗?这是一个很好的选择,数学。abs是一个非常聪明的主意@如果您想从解决方案中减去日期,MasnadNihit就是一个很好的例子:@MattWebb非常感谢您的帮助!!!我现在更明白了嗨,谢谢你的回答!所以基本上我需要把我的X改成新的Date能理解的东西?我不确定如何用这个例子修复我的代码…@MasnadNihit我添加了第二个代码片段和一些逻辑来更好地解释如何处理这个问题。非常感谢!!我现在明白了,在大家帮助之后:嗨,谢谢你们的回答!所以基本上我需要把我的X改成新的Date能理解的东西?我不确定如何用这个例子修复我的代码…@MasnadNihit我添加了第二个代码片段和一些逻辑来更好地解释如何处理这个问题。非常感谢!!我现在明白了,在大家帮助之后:非常感谢!这个答案解释得很好。非常感谢!这个答案解释得很好。