计算两个 yyyyMMddHHmmss 时间戳之间的经过时间
Calculate elapsed time between two yyyyMMddHHmmss timestamp
我需要按以下格式计算两个时间戳之间的时间差:
yyyyMMddHHmmss
例如我有
var lastExecution = 20150116165100; //--- 16:51:00 16/01/2015
var currentTime = 20150116170120; //--- 17:01:20 16/01/2015
在这种特殊情况下,经过的时间是 00:10:20
.
如何在 js 中计算它?我是否必须将其转换为其他格式才能继续?
我想要实现的是能够在变量中设置最小经过的时间,如果上次执行和现在之间经过的时间大于我想启动特定函数的最小经过时间:
minTime = 00000000001000; //--- 10 minutes
var lastExecution = getLastExecutionTimestamp();
var currTime = getCurrentTimestamp();
if((currTime - lastExecution) > minTime){ //--- I need help here to calculate the elapsed time
doSomething();
}
getLastExecutionTimestamp()
和 getCurrentTimestamp()
返回yyyyMMddHHmmss
格式的数字时间戳,例如20150116165100
谢谢
我认为没有一种简单而优雅的方法可以做到这一点。我会从两个字符串中取出日期值,将它们转换为秒或任何漂浮在船上的东西,然后根据 minTime 减去并测量它,如下所示:
var lastYearSeconds = parseInt(lastExecution.substr(0,4))*31536000; //this is in seconds
var lastMonthSeconds = parseInt(lastExecution.substr(4,2))*2592000;
然后对所有其他值执行相同的操作,将它们相加,然后从 currTime() 中解析的值中减去。
等等,忘记了 javascript 中的 Date() 类。是的内置!
基本上,仅解析日期字符串中的 int 值,然后像这样将它们提供给构造函数。然后,您可以使用dateObject.getTime() - otherDateObject.getTime()
减去两个日期值
试试这个,这使用你想要的格式:
function strToDate(str) {
var year = parseInt(str.substring(0,4));
var month = parseInt(str.substring(4,6));
var day = parseInt(str.substring(6,8));
var hour = parseInt(str.substring(8,10));
var minute = parseInt(str.substring(10,12));
var second = parseInt(str.substring(12,14));
var date = new Date(year, month, day , hour, minute, second, 0);
return date.getTime();
}
function timeStampToDate(timestamp) {
var d = new Date(timestamp);
var diffStr = ""+(d.getFullYear()-1970)+":"+d.getMonth()+":"+(d.getDate()-1)+":"+(d.getHours()-1)+":"+d.getMinutes()+":"+d.getSeconds();
return diffStr;
}
var lastExecution = "20150116165100"; //--- 16:51:00 16/01/2015
var currentTime = "20150116170120"; //--- 17:01:20 16/01/2015
var lastExecutionDate = strToDate(lastExecution);
var currentTimeDate = strToDate(currentTime);
var difference = (currentTimeDate - lastExecutionDate);
var diffInTime = timeStampToDate(difference);
alert("Time difference: "+diffInTime);
链接: http://jsfiddle.net/nxjk1L8s/
通过使用Java 1.8,以下脚本对我有用。试试这个...
LocalDateTime now3 = LocalDateTime.now();
System.out.println(now3);
Thread.sleep(70000);
LocalDateTime now4 = LocalDateTime.now();
System.out.println(now4);
Duration duration2 = Duration.between(now3, now4);
System.out.println("duration is "+duration2);
o/p:
2023-04-27T19:14:11.968
2023-04-27T19:15:21.974
duration is PT1M10.006S
相关文章:
- 如何每10.6秒从时间戳增加+1
- 使用AngularJS从时间戳中获取工作日
- 将时间戳转换为java中的ISO860,
- Javascript Unix时间戳转换
- JavaScript JSON关联对象键和值都作为日期时间戳
- 时间戳与mongoskin如何
- 用时间戳获取两个不同日期之间的时间差
- JavaScript:获取MySQL时间戳和当前日期之间的天数差
- 用户如何获取两个时间戳之间的对象
- 在带有时间戳的日期之间计算时出现 NaN JavaScript 错误
- 计算两个 yyyyMMddHHmmss 时间戳之间的经过时间
- JS和SQL Server之间的UTC时间戳不同
- 如何找到两个UNIX时间戳之间的HH:MM:SS差异
- 如何在客户端(js)和服务器(php)上获得时间戳之间的差异
- Javascript中时间戳之间的差异
- 使用javascript计算两个时间戳之间的差异
- 如何在moment.js中显示unix时间戳和当前日期之间的时间差
- Javascript和PHP之间的时间戳
- PHP和js的时间戳之间的差异
- 如何在 JavaScript 中呈现两个时间戳之间的上下文差异