0

タイムスタンプを使用したい。

これはタイムスタンプを出力することを知っています:

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

しかし、そのタイムスタンプを利用する方法を知りたいです。--> データベースに保存し、後で必要なタイムゾーンに変換してから、選択した形式で出力します。

私はそれを行う方法がわかりません。

タイムスタンプはどのように使用できますか?

4

1 に答える 1

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 そうすれば、現在のタイムスタンプが 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
于 2013-02-21T05:37:59.450 に答える