Как отображать дату и цену в базе данных MySQL и отображать ее в различных форматах в PHP

Я новичок php / mysql, поэтому я вставляю даты в любом формате, который обычно отображается на моих страницах, например:

Saturday, June 19, 2010 

прямо в базу данных в виде простого текста. Но я видел, как люди вводили его каким-то другим способом, а затем отображали ту же самую запись в различных форматах, используя некоторую функцию php. Каким образом это сделать, чтобы я мог иметь одну запись в базе данных и показывать ее в различных форматах, таких как:

 6/19/2010 June 19, 2010 Saturday, June 19, 2010 

и т.д…

Вторая часть вопроса

Как сделать то же самое, но с деньгами?

Вы должны хранить данные как MYSQL datetime feild. Затем используйте php для форматирования данных, как вы этого хотите.

Что касается цены, я рекомендую вам хранить ее в долларах США. Таким образом, вы можете легко конвертировать его в другие валюты.

Я сам храню его как временную метку unix.

Функция time () возвращает временную метку unix.

И проверьте функцию date () здесь:

http://php.net/manual/en/function.date.php

Он принимает два аргумента: формат, который вы хотите отобразить, и временную метку unix.

Как обрабатывать, сохранять, изменять даты php + mysql

Для дат просто сохраните их как DATETIME . Легко читать и легко работать с PHP. Вы могли бы пойти с чистым TIMESTAMP но я бы не рекомендовал его.

Диапазон DATETIME
'1000-01-01 00:00:00' до '9999-12-31 23:59:59'.

Диапазон TIMESTAMP
'1970-01-01 00:00:01' UTC to '2038-01-19 03:14:07'

Не только это, но и у вас есть много встроенных функций MYSQL для работы с DATETIME, например INTERVAL который позволит вам делать отличные вещи.

 // easy pull all comments values from within a range SELECT * FROM your_table WHERE your_date_field = DATE_SUB('2001-01-01 12:12:12' + INTERVAL 15 DAYS; 

Если вам нужно работать со временными метками на PHP, вы можете вытащить их в реальном времени на SQL следующим образом:

 // converts a DATETIME field real time to timestamps SELECT UNIX_TIMESTAMP(your_date_field) FROM your_table (...) 

И когда вы вытаскиваете их, просто форматируйте их так или иначе, как вам нравится использовать strftime . Пример ниже.

 // pull a date from MySQL and format them to a custom format // %A -> full weekday | %B -> full month name | %d -> month day | %Y - year 1999 $sql = "SELECT title, name, UNIX_TIMESTAMP(date) as timestamp FROM your_table WHERE your_limits"; $result = mysql_fetch_assoc(mysql_query($sql)); echo strftime("%A, %B %d, %Y", $result['timestamp']); 

Как хранить валюты в MySQL

Я всегда буду хранить их в их загруженной стоимости. Только когда есть транзакция или изменение, вы должны конвертировать из одной валюты в другую. Остальные сохраняют значения, когда они были загружены по первоначальной цене.

 | 135.23 | USD | | 200.35 | EUR | | 34.00 | GBP | 

При отображении валют вы можете сделать преобразование в реальном времени. Просто держите отдельную таблицу с текущей датой обмена и делайте математическое время в реальном времени. Было бы также плюсом, чтобы показать пользователю ваши коэффициенты конверсии.

Скажите, что пользователь выше с вышеуказанной учетной записью хотел получить свою валюту в евро.

 135.23 USD = 109.39 EUR (1 USD = 0.80893059 EUR) 30 GBP = 35.90 EUR (1 GBP = 1.19681281 EUR) 200.35 EUR ----------------------- total 345.64 EUR