0

我正在尝试将时间戳转换为时间和日期,但即使我以前做过,我也遇到了问题。这是我得到的时间戳示例:

2013-07-22 22:22:55

但是当我尝试使用解析它时

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

我收到以下错误。

遇到 PHP 错误严重性:
通知消息:遇到格式不正确的数值
文件名:parts/update_item.php
行号:13
遇到 PHP 错误严重性:警告
消息:日期():依赖系统的时区设置。您需要使用 date.timezone 设置或 date_default_timezone_set() 函数。如果您使用了这些方法中的任何一种,但仍然收到此警告,您很可能拼错了时区标识符。我们为 'MST/-7.0/no DST' 选择了 'America/Denver'
文件名:parts/update_item.php
行号:13

4

5 回答 5

2

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

$date = date('d-m-Y', strtotime($update->timestamp));
于 2013-07-26T05:04:01.913 回答
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));
于 2013-07-26T05:03:08.527 回答
1

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-26T05:03:49.323 回答
1

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

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

于 2013-07-26T05:03:55.073 回答
0

你的第一个日期参数应该是 Ymd

于 2013-07-26T05:03:06.120 回答