我是一个php / mysql新手所以我一直在以我在网页上显示日期的任何格式插入日期,例如:
Saturday, June 19, 2010
以纯文本形式直接进入数据库。但我看到人们以其他方式输入它,然后使用一些php函数以各种格式显示相同的记录。有什么方法可以做到这一点,这样我就可以在数据库中创建一条记录,并以各种格式显示,如:
6/19/2010
June 19, 2010
Saturday, June 19, 2010
等...
如何用钱做同样的事情?
答案 0 :(得分:1)
您应该将数据存储为MYSQL datetime feild。然后使用php格式化数据的格式。
至于价格我建议你把它存储为美分。这样你就可以很容易地将它转换成其他货币。
答案 1 :(得分:1)
我自己将它存储为unix时间戳。
函数time()返回一个unix时间戳。
并在此处查看date()函数:
http://php.net/manual/en/function.date.php
它需要两个参数:您希望它显示的格式和unix时间戳。
答案 2 :(得分:1)
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函数可以与像INTERVAL
这样的DATETIME一起使用,这样你就可以做很多事情。
// 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']);
| 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