我可以获取特定时区的时间戳吗?


Can I get the timestamp in specific time zone?

我有一个MySQL查询,可以在数据库中保存注释并保存时间戳我想将时间戳保存在另一个时区设置中,我可以通过以下查询来完成吗?

INSERT INTO tahminler 
(comment, comment_text, match_id, user_id, timestamp) 
VALUES ('$comment','$comment_text', $id, $user_id, now())

是的。您可以在PHP上使用date_default_timezone_set()来做到这一点。

<?php
echo date('Y-m-d H:i:s');// Your local server time
date_default_timezone_set('America/Los_Angeles');
echo "<br>";
echo date('Y-m-d H:i:s');// Los Angeles time

因此,在设置您选择的时区后,将您的now()替换为date('Y-m-d H:i:s');

你可以

试试这个

//default timezone
$date = new DateTime(null);
echo 'Default timezone: '.$date->getTimestamp().'<br />'."'r'n";
//America/New_York
$date = new DateTime(null, new DateTimeZone('America/New_York'));
echo 'America/New_York: '.$date->getTimestamp().'<br />'."'r'n";

获取常规时间戳并添加 UTC 偏移量

  //America/New_York
    $date = new DateTime(null, new DateTimeZone('America/New_York'));
    echo 'America/New_York: '.($date->getTimestamp() + $date->getOffset()).'<br />'."'r'n";

您可以使用添加列时间戳来更改表,如下所示....

 ALTER TABLE `table1` ADD `lastUpdated` TIMESTAMP 
 ON UPDATE CURRENT_TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP 

这将添加一个名为"lastUpdate"的列,其默认值为当前日期/时间。当该记录更新时(假设 5 分钟后),该时间戳将自动更新为当前时间。