我正试图将时间戳转换为时间和日期,但我遇到了问题,尽管我以前也这样做过。以下是我得到的时间戳示例:
2013-07-22 22:22:55
但是当我尝试使用解析它时
$date = date('d-m-Y', $update->timestamp);
我收到以下错误。
遇到PHP错误严重性:
通知消息:遇到格式不正确的数值
文件名:parts/update_item.php
行号:13
遇到PHP错误严重性:警告
消息:date():依赖系统的时区设置是不安全的。你需要才能使用date.timezone设置或date_default_timezone_set()函数。如果你使用了这些方法,并且您仍然收到此警告,您很可能时区标识符拼写错误。我们选择了"美国/丹佛"改为"MST/7.0/无夏令时"
文件名:parts/update_item.php
线路编号:13
使用strtotime
将日期时间转换为unix_timestamp。
$date = date('d-m-Y', strtotime($update->timestamp));
date函数期望第二个参数是一个数字时间戳(类似于time()的返回值),"2013-07-22 22:22:55"字符串是一个非数字的字符串值,您需要首先将其转换为数字值:
$date = date('d-m-Y', strtotime('2013-07-22 22:22:55'));
或者在您的情况下:
$date = date('d-m-Y', strtotime($update->timestamp));
2013-07-22 22:22:55不是时间戳。
strtotime('2013-07-22 22:22:55');
请使用以下函数设置您的默认时区。
date_default_timezone_set();
有关详细信息,请访问链接http://php.net/manual/en/function.date-default-timezone-set.php
此外,您应该使用以下代码。您之所以出现错误,是因为在date函数的第二个参数中,您应该输入时间戳值,但您传递的不是"2013-07-22 22:22:55"。strtotime函数将返回成功的时间戳。
$date = date('d-m-Y', strtotime($update->timestamp));
您的第一个日期参数应该是Y-m-d