Yyyyaagg formatında PHP bugüne dönüştürme

4 Cevap php

Ben şu formatta (yyyyaagg, 18751104, 19140722) ... hangi tarihte (dönüştürmek için en kolay yoludur) bulunuyor .... veya mktime kullanıyor () Altdizgelerin ve benim en iyi seçenek tarihleri ​​var ...?

4 Cevap

Muhtemelen zaten bunu yapmak için hafif bir yol çünkü Şahsen, ben sadece () substr kullanmak istiyorum.

Ama burada formatını belirtebilirsiniz hangi bir tarih, alır bir fonksiyon. Bu bir ilişkisel dizi döndürür, böylece örneğin (denenmemiş) yapabilirdi:

$parsed_date = date_parse_from_format('Ymd', $date);
$timestamp = mktime($parsed_date['year'], $parsed_date['month'], $parsed_date['day']);

http://uk.php.net/manual/en/function.date-parse-from-format.php

Yine de söylemeliyim ki, ben bulmuyorum daha kolay veya daha fazla etkili basitçe daha:

mktime(substr($date, 0, 4), substr($date, 4, 2), substr($date, 6, 2));

Peki tüm cevapların ancak 1900 sorunu için teşekkürler I got her yanıtını veba gibi görünüyor. İşte ben kullanıyorum fonksiyonunun bir kopyası birisi gelecekte onlar için yararlı buluyorum gerektiğidir.

public static function nice_date($d){
    $ms = array(
           'January',
           'February',
           'March',
           'April',
           'May',
           'June',
           'July',
           'August',
           'September',
           'October',
           'November',
           'December'
    );

    $the_return = '';
    $the_month = abs(substr($d,4,2));
    if ($the_month != 0) {
        $the_return .= $ms[$the_month-1];
    }

    $the_day = abs(substr($d,6,2));
    if ($the_day != 0){
        $the_return .= ' '.$the_day;
    }

    $the_year = substr($d,0,4);
    if ($the_year != 0){
        if ($the_return != '') {
            $the_return .= ', ';
        }
        $the_return .= $the_year;
    }

    return $the_return;
}