更改多个输出的日历格式

时间:2011-01-16 13:28:52

标签: php

我有一些日期是由之前的javascript和隐藏文本字段输出的。

我需要将其转换为其他格式(dd / mm / yyyy),我不太清楚该怎么做。

这些值是动态的,所以我不确定会有多少,所以我想它可能需要通过循环运行?

我需要转换此

Wed Jan 19 2011 00:00:00 GMT+1100 (EST),Thu Jan 20 2011 00:00:00 GMT+1100 (EST),Fri Jan 21 2011 00:00:00 GMT+1100 (EST),Sat Jan 22 2011 00:00:00 GMT+1100 (EST),Sun Jan 23 2011 00:00:00 GMT+1100 (EST)

19/01/2011,20/01/2011,21/01/2011,22/01/2011,23/01/2011

任何帮助都会很棒。

谢谢,

4 个答案:

答案 0 :(得分:4)

$str = 'Wed Jan 19 2011 00:00:00 GMT+1100 (EST),Thu Jan 20 2011 00:00:00 GMT+1100 (EST),Fri Jan 21 2011 00:00:00 GMT+1100 (EST),Sat Jan 22 2011 00:00:00 GMT+1100 (EST),Sun Jan 23 2011 00:00:00 GMT+1100 (EST)';

$dates = explode(',', $str);
$result = array();
foreach ($dates as $date) {
    $result[] = date('d/m/Y', strtotime($date));
}
echo implode(',', $result);

另请注意,此代码取决于本地时区。因此,如果您的时区不是GMT+11,那么您可以使用date_default_timezone_set('Australia/Canberra');进行更改,例如

答案 1 :(得分:1)

<?php
echo date('d/m/Y', strtotime("Wed Jan 19 2011 00:00:00 GMT+1100 (EST)"));

答案 2 :(得分:1)

你可以做这样的事情

$str='Wed Jan 19 2011 00:00:00 GMT+1100 (EST)';
$t=strtotime($str);
echo strftime('%d/%m/%Y', $t);

但请注意,strtotime将使用系统时区来转换时间 - 我在英国,这次,当转换为GMT时,实际上会显示'18 / 01/2011'。只是需要注意的事情!从手册:

  

每次调用日期/时间函数   如果时间会产生E_NOTICE   区域无效,和/或E_STRICT   如果使用,则为E_WARNING消息   系统设置或TZ环境   变量。也可以看看   date_default_timezone_set()

答案 3 :(得分:0)

您需要explode,然后使用strtotime功能。