时间戳出了什么问题


What is wrong with the timestamp?

我正试图将时间戳转换为时间和日期,但我遇到了问题,尽管我以前也这样做过。以下是我得到的时间戳示例:

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