【问题标题】:How to display date and price in a MySQL database and display it in various formats in PHP如何在 MySQL 数据库中显示日期和价格,并在 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


【解决方案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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-24
      • 1970-01-01
      • 1970-01-01
      • 2019-08-20
      相关资源
      最近更新 更多