php - 使用strftime格式化时间

时间:2013-12-01 16:24:43

标签: php datetime date-format strtotime strftime

我使用strftime来格式化来自mysql datetime col的多语言网站的时间。 我的目标是得到这个,就像“十进制时间”:

6 p.m. to 7.30 p.m. or
2.15 p.m. to 5 a.m.

而不是sg。那样:

06:00pm to 07:30pm
02:15pm to 05:00am

也许有人可以帮助我!

我试过这个(我的实验源代码):

// $var comes in datetime format from mysql
function formatDateTime($format,$var) {
return strftime("$format",strtotime($var));
// Formats: http://php.net/manual/de/function.strftime.php
}

// mysql fetch: ...
echo formatDateTime('%I:%M%P',$row['dateTimeStart']) ... to ...
echo formatDateTime('%I:%M%P',$row['dateTimeEnd'])

1 个答案:

答案 0 :(得分:2)

我相信这应该做你想做的事情:

function formatDateTime($date = 'now', $format = '%l:%M %P') {
    $ret = strftime($format, strtotime($date));
    return str_replace(array('am', 'pm', ':00'), array('a.m','p.m', ''), $ret);
}

使用示例:

echo formatDateTime('1385914593');
echo formatDateTime('08:00:04 AM');
echo formatDateTime('13:26:04');

输出:

5:30 a.m 
8 a.m 
1:26 p.m