2014-05-22 5 views
0

$ hours와 $ minutes가 00:00이 아닌 경우이 함수를 볼 수있는 방법이 있습니까? 그렇다면 시간을 표시하지 않으시겠습니까?날짜/시간의 시간과 분을 확인하십시오.

public static function datetimedutch($date) 
    { 
     if ($date != '') 
     { 
      list($newdate, $time) = explode(' ', $date); 

      list($date_year, $date_month, $date_day) = explode('-', $newdate); 
      list($hours, $minutes, $seconds) = explode(':', $time); 

      $dag  = array('zondag','maandag','dinsdag','woensdag','donderdag','vrijdag','zaterdag'); 
      $maand  = array('maand','januari','februari','maart','april','mei','juni','juli','augustus','september','oktober','november','december'); 
      $weekdag = date("w", mktime($hours, $minutes, $seconds, $date_month,$date_day,$date_year)); 
      $maandnr = date("n", mktime($hours, $minutes, $seconds, $date_month,$date_day,$date_year)); 
      $maand_dag = date("j", mktime($hours, $minutes, $seconds, $date_month,$date_day,$date_year)); 
      return $dag[$weekdag] . ' ' . $maand_dag . ' ' . $maand[$maandnr] . ' ' . $hours . ':' . $minutes; 
     } 
    } 

답변

0

이 그것을해야 :)

function datetimedutch($date) 
{ 
    if (!empty($date)) 
    { 
     $someDate = strtotime($date); 
     $hours = date('H',$someDate); 
     $minutes = date('i',$someDate); 

     $dag  = array('zondag','maandag','dinsdag','woensdag','donderdag','vrijdag','zaterdag'); 
     $maand  = array('maand','januari','februari','maart','april','mei','juni','juli','augustus','september','oktober','november','december'); 
     $weekdag = date("w", $someDate); 
     $maandnr = date("n", $someDate); 
     $maand_dag = date("j", $someDate); 
     if($hours>0 || $minutes>0) { 
      return $dag[$weekdag] . ' ' . $maand_dag . ' ' . $maand[$maandnr] . ' ' . $hours . ':' . $minutes; 
     } else { 
      return $dag[$weekdag] . ' ' . $maand_dag . ' ' . $maand[$maandnr]; 
     } 
    } else { 
     return false; 
    } 
} 

echo datetimedutch('2014-05-15 12:39:06'); 
echo "<br />"; 
echo datetimedutch('2014-05-15 00:00:06'); 
+1

전혀 관련없는 메모에 ... 나는 네덜란드어의 소리가 어떻게 들리는 지 (적어도 책을 읽을 때 내 머리 속에서 어떻게 발음하는지) 좋아한다. donderdag, heh, 그저 재미있어. – JustinM151

0

는 정말 예를 들어, 로케일 형식의 날짜를 얻기의 자동화 된 방법을 사용하는 것이 좋습니다 :

function formatDateInDutch($date = null) { 

    $date = strtotime($date); 
    $currentLocale = setlocale(LC_TIME, 0); 

    switch (PHP_OS){ 
     case 'WIN': 
     case 'WINNT': 
      setlocale(LC_TIME, 'Dutch'); 
      break; 

     case 'LINUX': 
     default: 
      setlocale(LC_TIME, 'nl_NL'); 

    } 

    // format: http://pl1.php.net/manual/en/function.strftime.php 
    $ret = strftime('%A %w %B %m', $date); 

    // has minutes, display hour:minute 
    if ((int)date('i', $date) != 0) { 
     $ret .= ' '.date('H:i', $date); 
    // has only hours 
    } elseif ((int)date('H', $date) != 0 AND (int)date('i', $date) == 0) { 
     $ret .= ' '.date('H', $date); 
    } 

    // restore default locale 
    setlocale(LC_TIME, $currentLocale); 

    return $ret; 
} 

function formatDateInDutchBetter($date = null){ 

    $date = new DateTime($date, new DateTimeZone('Europe/Amsterdam')); 

    // format: http://www.icu-project.org/apiref/icu4c/classSimpleDateFormat.html#details 
    $formatPattern = 'EEEE e LLLL dd '; 

    // NOTE: $date->format and IntlDateFormatter format patterns ARE DIFFERENT!!! 

    // if datetime has minutes then display hour:minutes 
    if ((int)$date->format('i') != 0) { 
     $formatPattern .= 'HH:mm'; 
    // if datetime has only minutes display minutes 
    } elseif ((int)$date->format('H') != 0 AND (int)$date->format('i') == 0) { 
     $formatPattern .= 'HH'; 
    } 

    $formattedDate = IntlDateFormatter::formatObject($date, $formatPattern, 'nl_NL'); 

    return $formattedDate; 
} 

print formatDateInDutch(date('Y-m-d H:m:s')); 

print '<hr>'; 

print formatDateInDutchBetter(date('Y-m-d H:m:s')); 

그리고 난 정말 두 번째 방법을 사용하는 것이 좋습니다 사용 PHP의 국제화 확장. 확장을 가능하게해야하지만 플랫폼에 독립적이며 다른 로케일을 추가/변경하는 것은 매우 쉽습니다.

관련 문제