时间戳有什么问题?

时间:2013-07-26 04:59:35

标签: php 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()函数。如果您使用其中任何一个   方法,你最有可能仍然得到这个警告   拼写错误的时区标识符。我们选择了“America / Denver”   'MST / -7.0 /无DST'而不是   文件名:parts / update_item.php
  行号:13

5 个答案:

答案 0 :(得分:2)

使用strtotime将日期时间转换为unix_timestamp。

$date = date('d-m-Y', strtotime($update->timestamp));

答案 1 :(得分:1)

请使用以下功能设置您的默认时区。

date_default_timezone_set();

有关详细信息,请转到http://php.net/manual/en/function.date-default-timezone-set.php

链接

此外,您应该使用以下代码。您收到错误,因为在日期函数的第二个参数中,您应该设置时间戳值,而不是通过“2013-07-22 22:22:55”。 strtotime函数将返回成功时间戳。

$date = date('d-m-Y', strtotime($update->timestamp));

答案 2 :(得分:1)

日期函数期望第二个参数是一个数字时间戳(比如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));

答案 3 :(得分:1)

2013-07-22 22:22:55不是时间戳。

strtotime('2013-07-22 22:22:55');

答案 4 :(得分:0)

您的第一个日期参数应为Y-m-d