Php 格式化日期时出现问题
我正在尝试编写一个函数来为我设置日期和时间的格式。我有一个几乎相同的函数,它只格式化一个日期。该函数工作正常。我只是添加了一些代码,尝试用时间格式化日期。它应该返回类似“2009年5月18日9:50 PM”的内容,但我收到了以下警告:Php 格式化日期时出现问题,php,mysql,datetime,mktime,Php,Mysql,Datetime,Mktime,我正在尝试编写一个函数来为我设置日期和时间的格式。我有一个几乎相同的函数,它只格式化一个日期。该函数工作正常。我只是添加了一些代码,尝试用时间格式化日期。它应该返回类似“2009年5月18日9:50 PM”的内容,但我收到了以下警告: Warning: mktime() expects parameter 6 to be long, string given in public_html/include/functions.php on line 421 以下是我的代码: function d
Warning: mktime() expects parameter 6 to be long, string given in
public_html/include/functions.php on line 421
以下是我的代码:
function dateTimeFormat($dateIn)
{
$x = explode(" ",$dateIn);
$y = explode("-",$x[0]);
$z = explode(":",$x[1]);
$year = $y[0];
$month = $y[1];
$day = $y[2];
$hour = $z[0];
$min = $z[1];
$dateOut =date("F j, Y h:i A", mktime($hour, $min, 0, $month, $day, $year));
return $dateOut;
}
它所发布的内容也是错误的。它提出:
December 31, 1969 07:00 PM
但是数据库中的时间戳是
2009-05-18 05:07:39
PHP已经有了一个非常好的日期解析函数:。它返回一个Unix时间戳,您可以将其传递到
date()
换句话说,您的功能可以简化为:
function dateTimeFormat($dateIn)
{
return date("F j, Y h:i A", strtotime($dateIn));
}
PHP已经有了一个非常好的日期解析函数:。它返回一个Unix时间戳,您可以将其传递到
date()
换句话说,您的功能可以简化为:
function dateTimeFormat($dateIn)
{
return date("F j, Y h:i A", strtotime($dateIn));
}
这消除了警告,但它仍然显示错误。它仍然显示:1969年12月31日07:00 PM,但MySQL中的时间戳是2009-05-18 00:00:00。这很可能是他传递给dateTimeFormat()的内容的一个特定(可能是无关的)问题。我给出的代码将按原样工作。您可能还注意到,strotime在PHP5.2.8中有一个严重的内存泄漏。它消除了警告,但仍然显示错误。它仍然显示:1969年12月31日07:00 PM,但MySQL中的时间戳是2009-05-18 00:00:00。这很可能是他传递给dateTimeFormat()的内容的一个特定(可能是无关的)问题。我给出的代码将按原样工作。您可能还注意到,strotime在PHP5.2.8中存在严重的内存泄漏。