Times代表不同服务器上的不同

时间:2013-02-15 15:50:29

标签: php

我对php很新,我的测试vr生产服务器上的时间表示不同。我正在计算小时工作,就像在时钟上一样。打卡打出=总工时。我正在使用此代码:

$time1 = $_POST['txt_starttime'];
$time2= $_POST['txt_endtime'];

$TotTime=date('H:i',strtotime($time2)-strtotime($time1));

下午11:45到晚上11:50 = 5分钟在我的测试服务器上它工作正常并在数据库中存储00:05。在生产服务器上,它给了我05:05:00我玩格式变量,但后来我得到17:05:00

这是服务器端设置......请帮忙!!!

3 个答案:

答案 0 :(得分:1)

您需要设置时区

date_default_timezone_set('Etc/GMT+1');

答案 1 :(得分:1)

服务器似乎正在使用默认的GMT TimeZone。您需要匹配逻辑上的差异或配置服务器以调整差异。

因此,如果您的家乡时区为+530小时,则需要将+ 5 hours 30 minutes添加到strtotime(),方式如下:

if ($production)
    $basetime = "+ 5 hours 30 minutes";
else
    $basetime = ""

您需要将制作中的标记设置为true

否则,您可以使用函数date_default_timezone_set并传递时区:

date_default_timezone_set('Asia/Calcutta');

答案 2 :(得分:0)

date从UNIX时间戳中为您提供时间。 UNIX时间戳是自1970年1月1日以来的秒数;因此它是相对时间date的结果是绝对时间

您想表示时间跨度,即相对时间。不要将其格式化为绝对时间。您所制作的是绝对时间戳 1970年1月1日00:05 ,如果在正确的时区中表示,则小时和分钟部分恰好为00:05。在不同的时区,它会有所不同。

要从300(秒)转到5(分钟),请使用数学(300 / 60)转换它们。