将日期字符串调整为另一种格式

时间:2014-04-28 11:01:37

标签: php string date date-formatting date-parsing

我从目录中提取文件名和修改日期。 我必须将日期格式化为ymd h:i以便我可以使用array_multisort按日期顺序对数组进行排序。

我希望然后将日期从ymd h:i改为d / m / y h:i;所以140428 11:54将成为28/04/14 11:54。

我已经有一个for循环,遍历每个数组位置,基本上将它附加到一个变量,以便在网站上打印出来。

<?php
$filelist = array("");
$datelist = array("");
$html = "";
$x = "";
$days = 250;
$path = 'Directory...';
if ($handle = opendir($path)) {
    while (false !== ($file = readdir ($handle))) {
        if (($file !== ".") && ($file !== "..") && ($file !== "Failed")
                && ($file !== "Complete")) {
            if (filemtime($path.'/'.$file) > (time() - ($days * 24 * 60 * 60 ) ) ) {
                array_push($filelist, $file);
                array_push($datelist, date("ymd h:i", filemtime($path.'/'.$file)));
            }
        }
    }
    closedir($handle);
    array_multisort($datelist, SORT_DESC, $filelist);
    $num = count ($filelist);
    for ($x=0; $x<$num; $x++) {
        $html .= '<tr><td><a href="file://directory/'.$filelist[$x].'">'.$filelist[$x]
            .'</a><br></td><td>'.$datelist[$x].'</td></tr>'."\n\t\t\t\t\t\t\t\t\t\t\t\t";
    }
}
?>

2 个答案:

答案 0 :(得分:0)

您可以创建一个帮助函数来解析自定义日期时间字符串,如下所示:

<?php

// Helper Function
function parseDate($datetime_str)
{
    list($myDate, $myTime) = explode(' ', $datetime_str);
    list($year, $month, $date) = str_split($myDate, 2);
    return "$date/$month/$year $myTime";
}

// Data Source
$datetime_str = '140428 11:54';

// Usage
var_dump(parseDate($datetime_str));

?>

输出:

enter image description here

答案 1 :(得分:0)

  

我希望然后将日期从ymd h:i改为d / m / y h:i;所以140428   11:54将成为28/04/14 11:54。

使用DateTime进行此类操作

$date = DateTime::createFromFormat('ymd h:i', '140428 11:54');
echo $date->format("d/m/y h:i");