2013-12-01 7 views
1

Я использую strftime для форматирования времени из mysql datetime col на многоязычном веб-сайте. Моя цель IST, чтобы получить это, как «десятичного времени»:php - формат времени с strftime

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']) 
+0

вам может понадобиться [PHP Date Format] (http://php.net/manual/en/datetime.formats.date.php) или [Формат даты в MySQL] (http://dev.mysql.com/doc /refman/5.5/en/date-and-time-functions.html#function_date-format) – bansi

+0

Если формат зависит от времени (которое в вашем примере оно делает), вам нужно будет изучить заданное время и изменить форматирование основанный на нем. – Wrikken

ответ

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 
+0

Я попробовал ваш код, он решает половину проблемы;) Я получаю от 8:00 до 3:30 вечера, но я бы хотел, чтобы «пустые минуты» ушли: например. С 8 утра до 3:30 вечера – user2987790

+0

Да, я знаю, что это очень хорошо, но я люблю, а вместо 2:00 утра> 2 часа ночи (5:30 отлично!) – user2987790

+1

вы можете просто изменить возврат к 'return str_replace (array ('am', 'pm', ': 00'), array ('a.m', 'p.m', ''), $ ret); ' – bansi