База данных MySQL + метка времени / PHP - PullRequest
0 голосов
/ 26 августа 2011

В моей базе данных есть переменная типа timestamp. Его значением по умолчанию является CURRENT_TIMESTAMP, что является отличной возможностью.

Однако, когда я вывожу переменную в шаблоне, она будет отформатирована до фактической даты. Php делает что-то необычное или дата в базе данных все еще хранится как метка времени? Мне нужно выполнить некоторые вычисления даты для некоторых функций в системе.

Ответы [ 2 ]

3 голосов
/ 26 августа 2011

Вы путаете MySQL TIMESTAMP (YYYY-MM-DD HH:MM:SS) с Unix TIMESTAMPS (секунды с начала эпохи).

SELECT UNIX_TIMESTAMP(timestamp_column_name) FROM ... должно дать вам то, что вы хотите

MySQL Manual (UNIX_TIMESTAMP)

1 голос
/ 26 августа 2011

Когда вы впервые вставляете значение, CURRENT_TIMESTAMP интерпретируется и заменяется значением функции NOW () в данный момент. Для временных меток mysql хранит 4-байтовое целое число, которое представляет количество секунд с начала эпохи unix в вашем текущем часовом поясе. Вы все еще можете выполнять вычисления в MySQL, используя функции даты и времени (например, возвращать другие форматы и т. Д.). Если вам интересно, вы можете также выполнить вычисления с этим значением в PHP.

http://dev.mysql.com/doc/refman/5.0/en/storage-requirements.html#id624727

http://en.wikipedia.org/wiki/Unix_time

http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html

http://us.php.net/manual/es/ref.datetime.php

...