PHP保存和重用时间戳

时间:2013-02-21 04:14:43

标签: php timestamp

我想使用时间戳。

我知道这会输出一个时间戳:

$date = date_create();
echo date_format($date, 'U');

但我想知道如何利用那个时间戳。 - >将它保存到数据库,然后将其转换为所需的时区,然后以我选择的格式输出。

我只是不知道该怎么做。

如何使用时间戳?

1 个答案:

答案 0 :(得分:1)

由于您的意图只是存储然后显示您的时间戳,您可以让mysql完成这项工作。

您的表格DDL可能看起来像

CREATE TABLE `posts` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `post_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `post` varchar(512) DEFAULT NULL,
  PRIMARY KEY (`id`)
);

重要提示DEFAULT CURRENT_TIMESTAMP 这样,当前时间戳将被分配到INSERT

上的post_date列
INSERT INTO `posts` (`post`) VALUES ('post1');

然后您可以使用DATE_FORMAT从mysql

获取格式化的时间戳数据
SELECT id, DATE_FORMAT(post_date, '%m/%d/%Y %H:%i:%s') post_date, post 
FROM `posts`

输出

+----+---------------------+-------+
| id | post_date           | post  |
+----+---------------------+-------+
|  1 | 02/20/2013 23:45:43 | post1 |
|  2 | 02/20/2013 23:45:43 | post2 |
+----+---------------------+-------+

但是如果你想在php中格式化它,你可以先在查询中使用UNIX_TIMESTAMP()

SELECT id, UNIX_TIMESTAMP(post_date) post_date, post FROM `posts`

然后将其格式化为date(),假设您使用自己喜欢的扩展程序(PDO或mysqli)将行添加到$row

date_default_timezone_set('America/New_York');
echo date('m/d/Y H:i:s',$row['post_date']);

输出

02/20/2013 23:45:43