如何在 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 中以各种格式显示的主要内容,如果未能解决你的问题,请参考以下文章

从mysql获取数据并在几周内对它们进行分组,并显示日期

如何将出生日期从数据库显示到表单并在 php 和 PDO 中更新?

Bootgrid sum列并在页脚中显示结果

将 AM PM 时间字符串存储到 MySQL 中的 TIME 数据类型中,并在显示时使用 AM PM 检索?

如何在 sql 中设置变量并在选择查询中使用它来显示和执行对该变量的操作(MAX MIN)?

如何使用不同日期自定义周末日期,并在完整日历中使用不同的小时数