检查Javascript中的时间差

检查Javascript中的时间差

如何检查Javascript中两个文本框的时间差?



梦里花落0921
浏览 517回答 3
3回答

慕哥9229398

即兴发挥。减去JavaScriptDate对象以获得它们之间的差异://&nbsp;use&nbsp;a&nbsp;constant&nbsp;date&nbsp;(e.g.&nbsp;2000-01-01)&nbsp;and&nbsp;the&nbsp;desired&nbsp;time&nbsp;to&nbsp;initialize&nbsp;two&nbsp;datesvar&nbsp;date1&nbsp;=&nbsp;new&nbsp;Date(2000,&nbsp;0,&nbsp;1,&nbsp;&nbsp;9,&nbsp;0);&nbsp;//&nbsp;9:00&nbsp;AMvar&nbsp;date2&nbsp;=&nbsp;new&nbsp;Date(2000,&nbsp;0,&nbsp;1,&nbsp;17,&nbsp;0);&nbsp;//&nbsp;5:00&nbsp;PM//&nbsp;the&nbsp;following&nbsp;is&nbsp;to&nbsp;handle&nbsp;cases&nbsp;where&nbsp;the&nbsp;times&nbsp;are&nbsp;on&nbsp;the&nbsp;opposite&nbsp;side&nbsp;of//&nbsp;midnight&nbsp;e.g.&nbsp;when&nbsp;you&nbsp;want&nbsp;to&nbsp;get&nbsp;the&nbsp;difference&nbsp;between&nbsp;9:00&nbsp;PM&nbsp;and&nbsp;5:00&nbsp;AMif&nbsp;(date2&nbsp;<&nbsp;date1)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;date2.setDate(date2.getDate()&nbsp;+&nbsp;1);}var&nbsp;diff&nbsp;=&nbsp;date2&nbsp;-&nbsp;date1;//&nbsp;28800000&nbsp;milliseconds&nbsp;(8&nbsp;hours)然后,可以将毫秒转换为小时、分钟和秒,如下所示:var&nbsp;msec&nbsp;=&nbsp;diff;var&nbsp;hh&nbsp;=&nbsp;Math.floor(msec&nbsp;/&nbsp;1000&nbsp;/&nbsp;60&nbsp;/&nbsp;60);msec&nbsp;-=&nbsp;hh&nbsp;*&nbsp;1000&nbsp;*&nbsp;60&nbsp;*&nbsp;60;var&nbsp;mm&nbsp;=&nbsp;Math.floor(msec&nbsp;/&nbsp;1000&nbsp;/&nbsp;60);msec&nbsp;-=&nbsp;mm&nbsp;*&nbsp;1000&nbsp;*&nbsp;60;var&nbsp;ss&nbsp;=&nbsp;Math.floor(msec&nbsp;/&nbsp;1000);msec&nbsp;-=&nbsp;ss&nbsp;*&nbsp;1000;//&nbsp;diff&nbsp;=&nbsp;28800000&nbsp;=>&nbsp;hh&nbsp;=&nbsp;8,&nbsp;mm&nbsp;=&nbsp;0,&nbsp;ss&nbsp;=&nbsp;0,&nbsp;msec&nbsp;=&nbsp;0您可以将时间作为字符串转换为24小时格式,如下所示:function&nbsp;parseTime(s)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;part&nbsp;=&nbsp;s.match(/(\d+):(\d+)(?:&nbsp;)?(am|pm)?/i); &nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;hh&nbsp;=&nbsp;parseInt(part[1],&nbsp;10); &nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;mm&nbsp;=&nbsp;parseInt(part[2],&nbsp;10); &nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;ap&nbsp;=&nbsp;part[3]&nbsp;?&nbsp;part[3].toUpperCase()&nbsp;:&nbsp;null; &nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(ap&nbsp;===&nbsp;"AM")&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(hh&nbsp;==&nbsp;12)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hh&nbsp;=&nbsp;0; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(ap&nbsp;===&nbsp;"PM")&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(hh&nbsp;!=&nbsp;12)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hh&nbsp;+=&nbsp;12; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;{&nbsp;hh:&nbsp;hh,&nbsp;mm:&nbsp;mm&nbsp;};}parseTime("12:00&nbsp;AM");&nbsp;//&nbsp;{hh:&nbsp;&nbsp;0,&nbsp;mm:&nbsp;0}parseTime("12:00&nbsp;PM");&nbsp;//&nbsp;{hh:&nbsp;12,&nbsp;mm:&nbsp;0}parseTime("01:00&nbsp;PM");&nbsp;//&nbsp;{hh:&nbsp;13,&nbsp;mm:&nbsp;0}parseTime("23:00");&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;{hh:&nbsp;23,&nbsp;mm:&nbsp;0}

胡子哥哥

此函数返回一个与日期时间字符串和当前日期时间不同的字符串。function&nbsp;get_time_diff(&nbsp;datetime&nbsp;){ &nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;datetime&nbsp;=&nbsp;typeof&nbsp;datetime&nbsp;!==&nbsp;'undefined'&nbsp;?&nbsp;datetime&nbsp;:&nbsp;"2014-01-01&nbsp;01:02:03.123456"; &nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;datetime&nbsp;=&nbsp;new&nbsp;Date(&nbsp;datetime&nbsp;).getTime(); &nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;now&nbsp;=&nbsp;new&nbsp;Date().getTime(); &nbsp;&nbsp;&nbsp;&nbsp;if(&nbsp;isNaN(datetime)&nbsp;) &nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;""; &nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;console.log(&nbsp;datetime&nbsp;+&nbsp;"&nbsp;"&nbsp;+&nbsp;now); &nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(datetime&nbsp;<&nbsp;now)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;milisec_diff&nbsp;=&nbsp;now&nbsp;-&nbsp;datetime; &nbsp;&nbsp;&nbsp;&nbsp;}else{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;milisec_diff&nbsp;=&nbsp;datetime&nbsp;-&nbsp;now; &nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;days&nbsp;=&nbsp;Math.floor(milisec_diff&nbsp;/&nbsp;1000&nbsp;/&nbsp;60&nbsp;/&nbsp;(60&nbsp;*&nbsp;24)); &nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;date_diff&nbsp;=&nbsp;new&nbsp;Date(&nbsp;milisec_diff&nbsp;); &nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;days&nbsp;+&nbsp;"&nbsp;Days&nbsp;"+&nbsp;date_diff.getHours()&nbsp;+&nbsp;"&nbsp;Hours&nbsp;"&nbsp;+&nbsp;date_diff.getMinutes()&nbsp;+&nbsp;"&nbsp;Minutes&nbsp;"&nbsp;+&nbsp;date_diff.getSeconds()&nbsp;+&nbsp;"&nbsp;Seconds";}在GoogleChrome中进行测试console(按F12)get_time_diff()1388534523123&nbsp;1375877555722"146&nbsp;Days&nbsp;12&nbsp;Hours&nbsp;49&nbsp;Minutes&nbsp;27&nbsp;Seconds"

米脂

以下是对我有效的解决方案:var&nbsp;date1&nbsp;=&nbsp;new&nbsp;Date("08/05/2015&nbsp;23:41:20");var&nbsp;date2&nbsp;=&nbsp;new&nbsp;Date("08/06/2015&nbsp;02:56:32");var&nbsp;diff&nbsp;=&nbsp;date2.getTime()&nbsp;-&nbsp;date1.getTime();var&nbsp;msec&nbsp;=&nbsp;diff;var&nbsp;hh&nbsp;=&nbsp;Math.floor(msec&nbsp;/&nbsp;1000&nbsp;/&nbsp;60&nbsp;/&nbsp;60);msec&nbsp;-=&nbsp;hh&nbsp;*&nbsp;1000&nbsp;*&nbsp;60&nbsp;*&nbsp;60;var&nbsp;mm&nbsp;=&nbsp;Math.floor(msec&nbsp;/&nbsp;1000&nbsp;/&nbsp;60);msec&nbsp;-=&nbsp;mm&nbsp;*&nbsp;1000&nbsp;*&nbsp;60;var&nbsp;ss&nbsp;=&nbsp;Math.floor(msec&nbsp;/&nbsp;1000);msec&nbsp;-=&nbsp;ss&nbsp;*&nbsp;1000;alert(hh&nbsp;+&nbsp;":"&nbsp;+&nbsp;mm&nbsp;+&nbsp;":"&nbsp;+&nbsp;ss);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript