2013-02-21 52 views
0

我想使用时间戳。PHP保存并重新使用时间戳

我知道,这个输出时间戳:

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

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

我只是不知道该怎么做。

如何使用时间戳?

+0

你想用什么时间戳? – 2013-02-21 04:15:31

+1

你不怎么在mysql数据库中存储数据? – 2013-02-21 04:16:18

+0

您可以在插入数据库时​​生成时间戳。 – 2013-02-21 04:18:36

回答

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`) 
); 

重要组成部分DEFAULTCURRENT_TIMESTAMP 这样,当前的时间戳将被分配到INSERT

INSERT INTO `posts` (`post`) VALUES ('post1'); 

POST_DATE列然后你可以使用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,你可以在查询第一

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

,然后用date()这样的格式化使用UNIX_TIMESTAMP(),假设你端来一通过您最喜爱的扩展名(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