28

我正在开发一个基于 Web 的应用程序来从系统日期时间捕获开始时间和结束时间,但我的主要问题是我不知道如何获取停机时间的开始时间和结束时间之间的持续时间。

 //Function to get current start time
  var startTime = setInterval(function () { start() }, 1000);

  function start() {
    var startDate = new Date();
    var timeStart = startDate.toLocaleTimeString();
  $("#setCount").html(timeStart);
 }
4

5 回答 5

44

你是这个意思吗:

var date1 = new Date();
var date2 = new Date();
var diff = date2 - date1; //milliseconds interval

更新

检查JSFiddle

于 2013-03-19T07:17:10.010 回答
14

更新:

如果你想向用户显示时差,就会这样做。但如果是出于任何开发目的,以下功能将使您的生活变得轻松。Serigo's method


只是想让您了解此控制台实用程序功能。

将此行放在应用程序初始化代码的顶部console.time('appLifeTime');

把这个放在你觉得你的应用程序结束的地方。console.timeEnd('appLifeTime');

console.time('appLifeTime');

setTimeout(function delay(){
  console.timeEnd('appLifeTime');
}, 1500);

上面的代码段将打印,appLifeTime: 1500.583ms.

AFAIK,console.time & console.timeEnd适用于 firefox(带有 firebug)和 webkit 浏览器(chrome、safari)。

于 2013-03-19T11:11:44.487 回答
9

要简单地测量经过的时间,请使用Date.getTime()which 输出自 unix 纪元以来的当前时间(以毫秒为单位)。

您可以从另一个值中减去一个毫秒值以获得持续时间。

例子:

var startTime = new Date().getTime();

setTimeout(function () {
  var endTime = new Date().getTime();
  console.log("duration [ms] = " + (endTime-startTime));
}, 1500);

输出当然是:(duration [ms] = 1500或更少或更多毫秒)。

于 2013-03-19T07:16:55.327 回答
4

我有这个函数来显示两个日期之间的时间距离:

export const timeDistance = (date1, date2) => {
  let distance = Math.abs(date1 - date2);
  const hours = Math.floor(distance / 3600000);
  distance -= hours * 3600000;
  const minutes = Math.floor(distance / 60000);
  distance -= minutes * 60000;
  const seconds = Math.floor(distance / 1000);
  return `${hours}:${('0' + minutes).slice(-2)}:${('0' + seconds).slice(-2)}`;
};

小时格式的输出h:mm:ss可以任意增长。

于 2019-10-09T07:59:39.597 回答
1

使用这个漂亮的 jQuery 插件:http ://timeago.yarp.com/

Timeago 是一个 jQuery 插件,可以轻松支持自动更新模糊时间戳(例如“4 分钟前”或“大约 1 天前”)。下载、查看示例并尽情享受。

您大约一分钟前打开了此页面。(这将每分钟更新一次。等待它。)

此页面最后一次修改是 13 天前。

瑞安出生于 34 年前。

于 2013-03-19T07:15:00.977 回答