• 29-09-2015, 11:45:11
    #1
    başka bir veritabanından almış oldugum bir dogum tarihi var bunun formatını değiştirmek istiyorum.
    bunuda strtotime ile yapıyorum. 1970 öncesinde sıkıntı veriyor.
    sizce nasıl çözebilirim?

    eski veri tarih tipi:
    01-Nov-65

    şeklinde veritabanı tipi ise
    01-11-1965

    bunu strtotime yaptıgımda 01-Nov-65 i 01.01.1970 yapıyor.

    Kod blogum şu şekilde.

    <?php
    include 'config.php';
    $users = $db->get_results("SELECT dogumtarihi,id FROM users order by id desc limit 0,1000");
    
    foreach ( $users as $user )
    {
    	$dogumtarihi = $user->dogumtarihi;
    	$id = $user->id;
    //	$tarih = strtotime("12-Oct-78",);
    	echo $dogumtarihi;
    echo '---';
    	$dogumtarihi = strtotime($dogumtarihi);
    $yeni_dogum_tarihi =  date("d-m-Y",$dogumtarihi);
    
    
    	echo $yeni_dogum_tarihi;
    	echo '<br>';
    //$db->query("UPDATE users SET dogumtarihi = '$yeni_dogum_tarihi' WHERE id =$id");
    
    
    }
    ?>
  • 29-09-2015, 12:04:32
    #2
    Merhaba,
    Madem db'de oop'a geçmişsiniz şuradan buyurun ;
    $date = new DateTime("01-11-1965");
    echo $date->format('Y-m-d');
    kolaylıklar
  • 29-09-2015, 12:26:36
    #3
    teşekkurler

    2068 olarak gösteriyordu.
    Şu şekilde çözümüne ulaştım.

    $date = date_create('12-Oct-68');
    date_sub($date, date_interval_create_from_date_string('100 years'));
    echo date_format($date, 'd-m-Y');