如何在 MySQL 数据库中显示日期和价格,并在 PHP 中以各种格式显示
Posted
技术标签:
【中文标题】如何在 MySQL 数据库中显示日期和价格,并在 PHP 中以各种格式显示【英文标题】:How to display date and price in a MySQL database and display it in various formats in PHP 【发布时间】:2010-06-20 00:58:39 【问题描述】:我是 php/mysql 新手,所以我一直在以我通常在页面上显示日期的任何格式插入日期,例如:
Saturday, June 19, 2010
直接以纯文本形式存入数据库。但是我看到人们以其他方式输入它,然后使用一些 php 函数以各种格式显示相同的记录。这样做的方法是什么,以便我可以在数据库中有一条记录并以各种格式显示,例如:
6/19/2010
June 19, 2010
Saturday, June 19, 2010
等等……
问题的第二部分
如何用钱做同样的事情?
【问题讨论】:
这些相关的 php/mysql 日期问题可能会有所帮助 ***.com/questions/409286/datetime-vs-timestamp ***.com/questions/977967/mysql-date-or-php-time 【参考方案1】:您应该将数据存储为 MYSQL 日期时间字段。然后使用 php 将数据格式化为你想要的格式。
至于价格,我建议您将其存储为美分。这样您就可以非常轻松地将其转换为其他货币。
【讨论】:
如果您需要稍后计算您的日期,您绝对应该使用DATETIME
。 (您可以将 unix 时间戳转换为日期时间,反之亦然,但为什么不从一开始就使用本机类型呢?)【参考方案2】:
我自己将其存储为 unix 时间戳。
函数 time() 返回一个 unix 时间戳。
在这里查看 date() 函数:
http://php.net/manual/en/function.date.php
它有两个参数:您希望它显示的格式和 unix 时间戳。
【讨论】:
【参考方案3】: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 到 '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
【讨论】:
以上是关于如何在 MySQL 数据库中显示日期和价格,并在 PHP 中以各种格式显示的主要内容,如果未能解决你的问题,请参考以下文章
如何将出生日期从数据库显示到表单并在 php 和 PDO 中更新?
将 AM PM 时间字符串存储到 MySQL 中的 TIME 数据类型中,并在显示时使用 AM PM 检索?