PHP strtotime手册here表明"The function expects to be given a string containing an English date format" . 它实际意味着它预期美国的美国日期格式,例如“m-d-Y”或“m / d / Y” .
这意味着以“Y-m-d”提供的日期可能被strtotime误解 . 您应该以预期的格式提供日期 .
我写了一个小函数来以多种格式返回日期 . 使用和修改 . 如果有人把它变成了一个 class ,我会很高兴,如果这将被分享 .
function Date_Converter($date, $locale = "br") {
# Exception
if (is_null($date))
$date = date("m/d/Y H:i:s");
# Let's go ahead and get a string date in case we've been given a Unix Time Stamp
if ($locale == "unix")
$date = date("m/d/Y H:i:s", $date);
# Separate Date from Time
$date = explode(" ", $date);
if ($locale == "br") {
# Separate d/m/Y from Date
$date[0] = explode("/", $date[0]);
# Rearrange Date into m/d/Y
$date[0] = $date[0][1] . "/" . $date[0][0] . "/" . $date[0][2];
}
# Return date in all formats
# US
$Return["datetime"]["us"] = implode(" ", $date);
$Return["date"]["us"] = $date[0];
# Universal
$Return["time"] = $date[1];
$Return["unix_datetime"] = strtotime($Return["datetime"]["us"]);
$Return["unix_date"] = strtotime($Return["date"]["us"]);
$Return["getdate"] = getdate($Return["unix_datetime"]);
# BR
$Return["datetime"]["br"] = date("d/m/Y H:i:s", $Return["unix_datetime"]);
$Return["date"]["br"] = date("d/m/Y", $Return["unix_date"]);
# Return
return $Return;
} # End Function
12 回答
如果您想避免使用strtotime转换(例如strtotime无法解析您的输入),您可以使用,
或者,等效地:
你首先给它的格式是$ dateString . 然后你告诉它你想要$ newDateString的格式 .
或者,如果源格式始终为"Y-m-d"(yyyy-mm-dd),则只需使用DateTime:
使用此功能可以从任何格式转换为任何格式
更多:
点击here
甚至更短:
两种方法来实现这一点
2)
投票最多的答案实际上是不正确的!
PHP strtotime手册here表明"The function expects to be given a string containing an English date format" . 它实际意味着它预期美国的美国日期格式,例如“m-d-Y”或“m / d / Y” .
这意味着以“Y-m-d”提供的日期可能被strtotime误解 . 您应该以预期的格式提供日期 .
我写了一个小函数来以多种格式返回日期 . 使用和修改 . 如果有人把它变成了一个 class ,我会很高兴,如果这将被分享 .
此代码适用于每种日期格式 .
由于您的旧日期格式,您可以更改替换变量的顺序,例如$ 3- $ 1- $ 2 .
另一个模糊的可能性:
我不知道我是否会使用它但仍然:)
没有日期转换开销,不确定它是否重要 .
你可以尝试strftime功能 . 像
strftime($time, '%d %m %Y');
之类的东西下面给出了使用
mktime()
生成明天日期的PHP代码,并将其格式更改为 dd/mm/yyyy 格式,然后使用echo
打印它 .使用
strtotime()
和date()
:(请参阅PHP站点上的strtotime和date docs) .
Edit :请注意,这是对原始问题的快速解决方案 . 对于更广泛的转换,您应该使用DateTime类来解析和格式化:-)