タイムスタンプを使用したい。
これはタイムスタンプを出力することを知っています:
$date = date_create();
echo date_format($date, 'U');
しかし、そのタイムスタンプを利用する方法を知りたいです。--> データベースに保存し、後で必要なタイムゾーンに変換してから、選択した形式で出力します。
私はそれを行う方法がわかりません。
タイムスタンプはどのように使用できますか?
あなたの意図はタイムスタンプを保存してから表示することだけなので、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
そうすれば、現在のタイムスタンプが post_date 列に割り当てられますINSERT
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`
次に、お気に入りの拡張機能 (PDO または mysqli)date()
で行をフェッチしたと仮定して、次のようにフォーマットします。$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