Doğru Cevap
-
gelen tarih muhtemelen gün ay yıl olarak geliyor ama php bunu ay gün yıl olarak işler o sorunu düzelttim.. kodlar şöyle
$gelentarih="20/05/2011"; // (gün ay yıl) burayı $_GET ile alabilirsin // (ay gün yıl) olarak değiştiriliyor $gelentarih=preg_replace('#(\d{2})/(\d{2})/(\d{4})#','$2/$1/$3',$gelentarih); $kaydedilecek_tarih=strtotime($gelentarih); // time stamp e dönüştürülüyor. $orjinale_don=date('d/m/Y',$kaydedilecek_tarih); // time stamp den stringe dönüştürülüyor. echo $orjinale_don; echo '<br />'; echo 'Doğum günü : '. $dogumgunu="30/12/2019"; // (gün ay yıl) // (ay gün yıl) olarak değiştiriliyor $dogumgunu=preg_replace('#(\d{2})/(\d{2})/(\d{2}|\d{4})#','$2/$1/$3',$dogumgunu); echo '<br />'; // Aradaki Fark Alınıyor. $zamanfarki=strtotime($dogumgunu)-strtotime($gelentarih); // time stamp formatında $kalanzaman=date('d/m/Y',$zamanfarki); // içinden 01/01/1970 (0 kabul edilen zaman çıkartılmalı) preg_match('#(\d{2})/(\d{2})/(\d{4})#',$kalanzaman,$zmnmatches); $kgun=$zmnmatches[1]-1; $kay =$zmnmatches[2]-1; $kyil=$zmnmatches[3]-1970; echo '<br />'; echo "O güne $kyil yıl, $kay ay, $kgun gün kaldı.";
Üstteki Kodların Çıktısı Şöyle:
20/05/2011
Doğum günü : 30/12/2019
O güne 8 yıl, 7 ay, 12 gün kaldı.
Cevaplar
-
Date fonksiyonu timestramp turunde veri alir. Bir tarih degeri almaz
-
Önce gelen tarihini parse ederek gün, ay ve yıl şeklinde almalısın.
Formdan gelen formatının d/m/Y şeklinde olduğunu varsayarsak eğer
list($gun, $ay, $yil) = explode('/', $_GET['gelentarih']);
şeklinde birinci adımı uygulamalıyız. Daha sonra almak istediğin timestamp ise şunu yapmalısın.
$timestamp = mktime(0, 0, 0, $ay, $gun, $yil);
ve eğer veritabanındaki formatın int ya da timestamp değilse, date ya da datetime ise veritabanı için şuna çevirmelisin.
$tarih = Date("Y-m-d", $timestamp);
bu üç işlem işini fazlasıyla çözecektir. mktime fonksiyonunu iyi araştırmanı ayrıca öneriyorum..-
skrsnsy
katılıyorum12 yıl önce yazılmış
-
-
Vermiş olduğunuz cevaplar için çok teşekkür ediyorum. Mehmet bey in vermiş olduğu 3 fonksiyon herşeye yetti, diğeri biraz daha karmaşık geldi ama çalışıyor.