Javascript 带起点的jQuery递增计时器

Javascript 带起点的jQuery递增计时器,javascript,jquery,timer,Javascript,Jquery,Timer,我正在开发一个页面,允许员工跟踪完成一项任务所需的时间。有两个按钮“开始”和“停止”,用于在数据库中保存实际的时间戳 然而,我想给一些类型的视觉计数器以及,甚至认为数据从计数器本身将没有发言权的启动和停止计时器;这一切都基于时间戳 我发现了一个倒计时插件,我把它倒过来,让它在将来以一种最新的方式计数。只要他们点击“开始”,计时器就开始计数 我正试图建立一种方式,从一个特定的时间开始计时器,如果用户是离开和回来 例如,如果任务的时间戳为2015年9月1日12:00,则计时器将在4天x小时x分钟开始

我正在开发一个页面,允许员工跟踪完成一项任务所需的时间。有两个按钮“开始”和“停止”,用于在数据库中保存实际的时间戳

然而,我想给一些类型的视觉计数器以及,甚至认为数据从计数器本身将没有发言权的启动和停止计时器;这一切都基于时间戳

我发现了一个倒计时插件,我把它倒过来,让它在将来以一种最新的方式计数。只要他们点击“开始”,计时器就开始计数

我正试图建立一种方式,从一个特定的时间开始计时器,如果用户是离开和回来

例如,如果任务的时间戳为2015年9月1日12:00,则计时器将在
4天x小时x分钟开始

我在插件中添加了一个名为
resume
startTime
的设置,它触发了
resumeTimer
功能

我该怎么做呢

以下是一个片段:

var全球集装箱;
(函数($){
$.fn.upCount=函数(选项,回调){
变量设置=$.extend({
开始时间:空,
偏移量:空,
重置:空,
简历:空
},选项);
//保存容器
var容器=这个;
globalContainer=container.parent().html();
/**
*更改客户端的本地日期以匹配偏移时区
*@return{Object}固定日期对象。
*/
var currentDate=函数(){
//获取客户端的当前日期
变量日期=新日期();
//将日期转换为utc
var utc=date.getTime()+(date.getTimezoneOffset()*60000);
//设置新的日期对象
var new_date=新日期(utc+(3600000*settings.offset))
返回新的_日期;
};
//我们要重新设置计数器吗?
如果(设置.重置){
重置();
}
//如果我们离开并回来,是否需要在特定时间启动柜台?
if(settings.startTime){
resumeTimer(新日期(settings.startTime));
}
//定义一些全局变量
var original_date=currentDate();
//console.log(currentDate())
var target_date=新日期('12/31/2020 12:00:00');//截至此日期的计数
//通过销毁绑定到的元素重置计数器
函数重置(){
var timerContainer=$('[name=timerContainer]');
timerContainer.empty().append(globalContainer.find('.time').empty().append('00');
}
//给定开始时间,让我们设置计时器
功能恢复计时器(开始时间){
警报('恢复计时器需要从StartTime+StartTime启动)
//这将获取提供的开始时间和当前日期之间的差异。
//如果差值为4天25分钟,则计时器将从该时间开始继续计数
}
//启动计数器
函数倒计时(){
//设定我们当前的日期
var current_date=currentDate();
//日期差异
var差异=当前_日期-原始_日期;
如果(当前日期>=目标日期){
//停止计时器
间隔时间;
if(callback&&typeof callback=='function')callback();
回来
}
//基本数学变量
var_秒=1000,
_分钟=_秒*60,
_小时=_分钟*60,
_日=_小时*24;
//计算日期
var天数=数学下限(差值/_天),
小时数=数学楼层((差异%\u天)/\u小时),
分钟=数学楼层((差异%\u小时)/\u分钟),
秒=数学楼层((差%\u分钟)/\u秒);
//确定日期,以便显示两个数码集
天=(字符串(天)。长度>=2)?天:“0”+天;
小时=(字符串(小时)。长度>=2)?小时:“0”+小时;
分钟=(字符串(分钟)。长度>=2)?分钟:“0”+分钟;
秒=(字符串(秒)。长度>=2)?秒:“0”+秒;
//根据日期更改参考措辞
var ref_days=(days==1)?“day”:“days”,
参考小时=(小时===1)?“小时”:“小时”,
参考分钟=(分钟===1)?“分钟”:“分钟”,
参考秒=(秒===1)?“秒”:“秒”;
//设置为DOM
container.find('.days').text(days);
container.find('.hours').text(hours);
container.find('.minutes').text(minutes);
container.find('.seconds').text(秒);
container.find('.days\u ref').text(ref\u days);
container.find('.hours\u ref').text(ref\u hours);
container.find('.minutes\u ref').text(ref\u minutes);
container.find('.seconds\u ref').text(ref\u seconds);
};
//开始
间隔=设置间隔(倒计时,1000);
};
})(jQuery);
//从特定时间恢复计时器
$('.countdown').upCount({
开始时间:“09/01/2015 12:00:00”,
简历:对
});
ul.倒计时{
列表样式:无;
利润率:15px 15px;
填充:0;
显示:块;
文本对齐:居中;
}
倒计时李{
显示:内联块;
}
倒计时{
字号:80px;
字体大小:300;
线高:80px;
}
倒计时分隔符{
字号:80px;
线高:70px;
垂直对齐:顶部;
}
倒计时{
颜色:#a7abb1;
字体大小:14px;
}

  • 00

  • 00 小时数

  • 00

    分钟数

  • 00 秒


看起来像是在
倒计时
函数中,而不是减去
原始日期
您只需要减去
新日期(settings.startTime)