function convertdate($date) {
date_default_timezone_set('America/Chicago');
return date("M j, Y g:ia", $date);
}
所以,我真的不知道怎么了。我还有其他需要查看的代码。我该如何解决这个问题以显示正确的日期。
function convertdate($date) {
date_default_timezone_set('America/Chicago');
return date("M j, Y g:ia", $date);
}
所以,我真的不知道怎么了。我还有其他需要查看的代码。我该如何解决这个问题以显示正确的日期。
PHP 的date
函数将整数时间戳(自 1970-01-01 UTC 以来的秒数)作为其第二个参数。我的猜测是您没有将整数(或至少不是正确的整数)传递给您的函数。
尝试DateTime
改用,例如
function convertDate($date) {
$dt = new DateTime($date, new DateTimeZone('America/Chicago'));
return $dt->format('M j, Y g:ia');
}
在这里演示 - http://codepad.viper-7.com/EUXgwJ
构造函数中的日期字符串解析在DateTime
某种程度上是特定于美国语言环境的(例如默认情况下为 mm/dd/yyyy)。例如,通过指定要使用的可选格式参数,您可以获得更好的里程数DateTime::createFromFormat
function convertDate($date, $format = null) {
$tz = new DateTimeZone('America/Chicago');
if ($format !== null) {
$dt = DateTime::createFromFormat($format, $date, $tz);
if ($dt === false) {
throw new Exception('Could not parse date / time string');
}
} else {
$dt = new DateTime($date, $tz);
}
return $dt->format('M j, Y g:ia');
}
现在您可以DateTime
对日期/时间字符串进行最佳猜测,也可以明确告诉它要使用什么格式,例如
echo convertDate('1/11/2013', 'd/m/Y');
你在$date
变量中传递什么。
如果您将其作为字符串传递,请尝试此操作
function convertdate($date) {
date_default_timezone_set('America/Chicago');
return date("M j, Y g:ia", strtotime($date));
} ^^^^
注意 strtotime() 函数