PHP Date Compiler - PullRequest
       1

PHP Date Compiler

0 голосов
/ 06 ноября 2010

Я только что написал функцию в PHP, которая меняет даты на более понятный человеку формат.

function customDate($input_date){
 $datetime = explode(' ', $input_date);
 $date = explode('-', $date);
 $time = explode(':', $time);
 $current = date('Y-m-d H:i:s');
 $currentdatetime = explode(' ', $current);
 $currentdate = explode('-', $current_date);

 if($date[2] == $currentdate[2]) return date('H:i', strtotime($input_date));
 else if($date[2] != $currentdate[2] && $date[0] == $currentdate[0]) return date('F d H:i', strtotime($input_date));
 else if($date[2] = $currentdate[2] && $date[0] != $currentdate[0]) return date('F d Y H:i', strtotime($input_date));
 else return $input_date;
}

Это меняет даты как 2010-11-06 18:25:55, чтобы выглядеть более похоже на 18:25 (если 2010-11-06 сегодня), 11 November 18:25 (если не сегодня, но все еще в 2010 году) или 11 November 2010 18:25, если 2010 год уже прошел.Но это в теории, я не могу понять, почему функция продолжает выводить только часы и минуты с разными датами.Что может вызвать проблему?

Ответы [ 2 ]

1 голос
/ 06 ноября 2010

PHP уже поддерживает практически любой формат, который вы хотите, используя функцию date (). При необходимости объедините его с strtotime (), чтобы получить то, что вы хотите. Это довольно мощный. Например:

if ( date('Y',strtotime($input_date)) < date('Y',time()) ) {
    echo date('d F Y H:i');
} else {
    echo date('d F H:i');
}
// Oter examples
echo date('Y-m-d', strtotime('last tuesday'));
echo date('Y-m-d', strtotime('3 days ago'));
echo date('Y-m-d', strtotime('+4 weeks'));
echo date('Y-m-d H:iA', strtotime('+2 hours 23 minutes'));
echo date('Y-m-d H:iA', strtotime('+2 hours -23 minutes'));
0 голосов
/ 06 ноября 2010

Я думаю, что функция выводит тот же формат, потому что он более точный, но также не написано никакого кода, чтобы сделать его более читабельным для человека.

Но это меч с 2 ребрами.Mac любит использовать «Закончено за минуты».Windows предпочитает использовать «закончено за 2 минуты 20 секунд».

Некоторые люди могут найти фразу «закончено за минуты» или «секунды» достаточно хорошо, но в то же время, если мне нужно сесть на автобуси я не знаю, будет ли это 2 минуты или 7 минут, тогда это может быть проблемой.В то же время, мне, вероятно, не нужно знать «2 минуты 20 секунд» против «2 минуты 15 секунд».

Так похоже на вашу проблему ... иногда необходимо показать детали,иногда нет.Например, чтобы показать время купленного вами концертного билета, возможно, нужен месяц, а может, и год.

...