我正在尝试使用strtotime来转换以下日期:
07/09/2009 17:01:27
这是9月7日的欧洲/伦敦时区格式
该功能正在颠倒月份和日期,是否有解决方法?谢谢
小智 19
改变/了-,好像PHP得到/作为美国的格式,和-欧洲.你可以在这里看到:
$date = "06/10/2011 14:28"; // 6 october 2011 2:28 pm
$otherDate = "06-10-2011 14:28"; // 6 october 2011 2:28 pm
echo $stamp = strtotime($date) . "<br />"; // outputs 1307708880
echo $otherStamp = strtotime($otherDate) . "<br />"; // outputs 1317904080
echo date("d-m", $stamp); // outputs 10-06
echo date("d-m", $otherStamp); // outputs 06-10
Run Code Online (Sandbox Code Playgroud)
http://www.php.net/manual/es/function.strtotime.php#106043
如果您不在Windows上,则可以使用strptime,并明确设置格式.正如OIS指出的那样,strptime在Windows上不可用.
要将拆分年/月/日等值转换为unix时间戳,您可以将它们传递给mktime.略显繁琐,但它的确有效.
您可能想要这样做的一个原因是使用不同的格式打印它date.
来自strptime php.net页面:
示例#1 strptime()示例
Run Code Online (Sandbox Code Playgroud)<?php $format = '%d/%m/%Y %H:%M:%S'; $strf = strftime($format); echo "$strf\n"; print_r(strptime($strf, $format)); ?>上面的例子将输出类似于:
03/10/2004 15:54:19
Run Code Online (Sandbox Code Playgroud)Array ( [tm_sec] => 19 [tm_min] => 54 [tm_hour] => 15 [tm_mday] => 3 [tm_mon] => 9 [tm_year] => 104 [tm_wday] => 0 [tm_yday] => 276 [unparsed] => )
DateTime可以轻松处理:
$datetime = new DateTime('07/09/2009 17:01:27', new DateTimeZone('Europe/London'));
echo $datetime->format('d/m/Y H:i:s');
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15378 次 |
| 最近记录: |