0

同时我的本地时间和服务器时间不相等,例如:

1)我的电脑当地时间是

$ python -c 'import time;print (time.strftime("%Y-%m-%d %I:%M-%S"))'
2013-11-12 12:35:44

2)从服务器我得到JSON:

  public function waitingAction() {
    $sql = "select status,createdate from sh_av_queue where `status`='waiting'";
    $result = $this->db->fetchAll($sql);
    $content = Zend_Json::encode($result);
    $this->getResponse()
            ->setHeader('Content-Type', 'application/json')
            ->setBody($content)
            ->sendResponse();
    exit;
  }  

[{"status":"waiting","createdate":"2013-11-12 15:35:44"}]

3)现在在本地PC中,我必须以这种格式表示时差:

00:00:00 00:00:01 ... 00:00:59

在这种情况下如何使时间比较正确?(因为我的本地时间与服务器时间不同,但同时我必须比较两个不同的时间,因为它是本地 PC 时间比较)

4

1 回答 1

0

要查找服务器本地时间和您的 PC 本地时间之间的差异:

#!/usr/bin/env python
import json
import urllib2
from datetime import datetime

local_dt = datetime.now()
data = json.load(urllib2.urlopen(server_url))
# -> [{"status":"waiting","createdate":"2013-11-12 15:35:44"}]
server_dt = datetime.strptime(data[0]["createdate"], "%Y-%m-%d %H:%M:%S")
# -> datetime(2013, 11, 12, 15, 35, 44)
print(server_dt - local_dt)
# -> 3:00:00

您可以手动构造字符串:

td = server_dt - local_dt
minutes, seconds = divmod(td.total_seconds(), 60)
hours, minutes = divmod(minutes, 60)
print("%02d:%02d:%02d" % (hours, minutes, seconds))
#-> 03:00:00

要比较时钟,您可能应该在服务器和 PC 上都使用 UTC 时间:

utc_dt = datetime.utcnow() # PC
于 2013-11-13T23:53:01.220 回答