当前位置: 首页 > 面试题库 >

在PHP / MySQL / JavaScript系统中计算时差

蓟俊杰
2023-03-14
问题内容

我想知道最好的方法是计算从现在到某一点的时间差,比如说倒计时时间。

我有一个在特定时间具有关闭时间的拍卖,该时间以“ DATETIME 00-00-000 00:00:00”的格式存储在MySQL记录中。该记录称为关闭时间。

现在在我的网站上,我有JavaScript代码,这次是通过PHP文件获取的。JavaScript使用每秒循环一次setInterval 1000。PHP文件从数据库获取关闭时间,并以这种格式发送回去

strtotime($result['closetime']);

我得到了请求的时间,我想使用服务器时间,而不是JavaScript中的时间,因为用户的时钟可以关闭。

strtotime(date("H:i:s", $_SERVER['REQUEST_TIME']))

我发回这两个时间戳,并在JavaScript中计算它们之间的时差。我使用此函数来执行此操作,从PHP发送回的值称为currentTime和closeTime,我认为这应该很清楚。

function auctionDelayTime(currentTime,closeTime){
    totaldelay = closeTime - currentTime;
    if(totaldelay <= 0){
        return 'ended';
    }else{
        if( days=parseInt((Math.floor(totaldelay/86400))) )
            totaldelay = totaldelay % 86400;
        if( hours=parseInt((Math.floor(totaldelay/3600))) )
            totaldelay = totaldelay % 3600;
      if( minutes=parseInt((Math.floor(totaldelay/60))) )
            totaldelay = totaldelay % 60;
        if( seconds=parseInt((Math.floor(totaldelay/1))) )
            totaldelay = totaldelay % 1;

        return hours+':'+formatTimes(minutes)+':'+formatTimes(seconds);
    }
}
function formatTimes(value){
    return value < 10 ? '0'+value : value;
}

我认为这是很多代码,使事情变得如此简单。有没有人有更好的解决方案或更多的“美丽”代码。

请享用!


问题答案:

使用Date对象。

var d = new Date(difference_in_milliseconds);
var seconds = d.getSeconds();
var minutes = d.getMinutes();
var hours = d.getHours() - 1; //See note

注意:奇怪的是,小时值比我不知道的原因要大一倍。看起来“ 1970年1月1日午夜”是凌晨1点:-)

更新:差异1是由于我的时区(GMT +1)的偏移。

轻微的更改将解决此问题:

var d = new Date();
var offset = d.getTimezoneOffset() * 60000;
var d = new Date(difference_in_milliseconds + offset);
var seconds = d.getSeconds();
var minutes = d.getMinutes();
var hours = d.getHours();


 类似资料:
  • 问题内容: 内容: 我们有一个PHP / MySQL应用程序。 计算的某些部分直接在SQL中完成。例如:最近24小时内创建的所有用户都将通过SQL查询返回(NOW()– 1天) 我和其他开发人员之间正在进行辩论,我认为我们应该这样做: A.将所有计算/代码/逻辑保存在PHP中,并将MySQL视为“愚蠢的”信息存储库 他的意见: B.根据更简单/更快的方式进行混合搭配。http://www.onex

  • 在现实生活中,操作系统是如何计算进程的突发时间的。假设计算机有5个进程要执行,并且使用最短作业优先算法。那么操作系统如何提前知道每个进程的突发时间??

  • 我现在正在做一个结果表,我想排序一个表,按点(顶部最高),如果点相等,我想按目标差异排序,然后如果目标差异相等,我想按目标排序得分了。 所以一张桌子可能看起来像这样, 所以A队赢得联赛是因为它比B队有更好的进球差距,C队比D队得分更高,因为他们进了更多的球,其他一切都是平等的。 可以在mysql中以这种方式排序吗,或者我需要用PHP解析结果吗?

  • 计算机操作系统

  • 本文向大家介绍PHP递归统计系统中代码行数,包括了PHP递归统计系统中代码行数的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了PHP递归统计系统中代码行数的具体代码,供大家参考,具体内容如下 1、统计代码行数,必然用到的两个关键的知识点:函数递归以及文件读取。 函数递归无非就是在函数的代码中调用本身的函数名,以此形成递归循环 在文件读取中,有很多读取方式,采用了file()读取,按行

  • 问题内容: 可以说我有一个名为’ ‘的mysql表,具有以下值: 我想生成一份报告,说明每天有多少只动物报名(我不在乎一天中的时间)。因此,我从上面的示例表中寻找的最终结果是: 有没有一种方法可以在mysql中执行此操作,或者我需要使用另一种语言(如PHP)来计算总数吗? 任何想法表示赞赏,谢谢 问题答案: 会给您您所追求的。