根据时区的时间戳或更改时间

时间:2019-08-26 20:29:08

标签: php mysql

我是这个论坛的新手,正在学习编码。

我想问一下如何将时间戳更改为当前时区,或者有什么方法可以将时间戳日期/时间转换为当前时区美国/多伦多或-4:00

我尝试了适用于MySQL和Cpanel的每个选项。 (htacces,phpini,mysql中的settimezone)

现在我正计划使用PHP,因为它将更好。

这是从表中获取时间戳的代码

<?php echo htmlentities($result->PostingDate);?>

请告诉我将时间转换为当前时区的合适方法

2 个答案:

答案 0 :(得分:1)

如果您知道PostingDate设置为当前时区,并且想要使用PHP代码来进行操作,则可以尝试以下操作:

// Current timezone used by server, database
$current_timezone = new DateTimeZone('UTC'); 
// Your timezone that YOU want to use
$local_timezone = new DateTimeZone('America/Toronto');

$datetime = new DateTime($result->PostingDate, $current_timezone);
$datetime->setTimezone($local_timezone);

// $datetime should be set to America/Toronto now.

支持的时区列表:https://www.php.net/manual/en/timezones.php

答案 1 :(得分:0)

您可以这样做

mysql> SELECT CURRENT_TIMESTAMP;
+---------------------+
| CURRENT_TIMESTAMP   |
+---------------------+
| 2008-07-19 03:08:37 |
+---------------------+
1 row in set (0.00 sec)

mysql> SET TIME_ZONE = '-00:00';
Query OK, 0 rows affected (0.00 sec)

mysql> SELECT CURRENT_TIMESTAMP;
+---------------------+
| CURRENT_TIMESTAMP   |
+---------------------+
| 2008-07-19 07:10:13 |
+---------------------+
1 row in set (0.00 sec)

,在这种情况下,主机使用时区MST(GMT-7)。但是为什么不使用UTC()时间呢?