Maalesef bu mümkün değil. Bugün bunu yapmaya çalışıyordum fakat buradan öğrendim ki bu mümkün değilmiş.. Peki gün-ay-yıl formatında tarihleri nasıl kullanacağız ?
Tarihi MySQL veritabanına kaydederken yıl-ay-gün şeklinde formatlamak zorunlu olduğundan html formunuzda tarihi gün ay yıl gibi 3 adet form nesnesinden alıp php ile bunu MySQL’in anlayacağı şekle çevirip MySQL’e yazdıralım.. Yani HTML formumuz şu şekilde olsun.
<form action='' method='post'>
Gün : <input type='text' name='gun' /><br />
Ay : <input type='text' name='ay /><br />
Yıl : <input type='text' name='yil' /><br />
</form>
Şimdi bunun php kodunu yazalım..
<?php
$tarih = $_POST['yil'] .”-”. $_POST['ay'] . “-” . $_POST['gun'];
?>
Bu kodlar sayesinde tarihimizi MySQL’in anlayacağı şekle çevirdik..
mysql_query(”INSERT INTO tablomuz (tarihAlani) VALUES ($tarih) “);
kodunu kullanarak bu tarihi mysql’e yazdırıyoruz.. Şimdi sırada tarihin görüntülenmesi var..
PHP kullanarak MySQL’den yıl-ay-gün olarak alacağımız tarihi gün-ay-yıl formatına çevireceğiz.. Bunu da şu kodla yapabiliyoruz;
<?php
echo date("d-m-Y",strtotime($mysqldengelentarih));
?>
Böylelikle tarihi MySQL’de yıl-ay-gün şeklinde tutmamız zorunlu olsa da gün ay yıl şeklinde istediğimiz formatta görüntüleyebildik…
Ya da hiç bunları yapmayıp mysql’deki alanınızın veri tipini varchar() yapıp sorunu çözersiniz…
MySQL, PHP, tarih
Yazacağım tüm yazıları RSS beslemesi ile takip edebilirsiniz
E-posta abonesi olarak yazacağım yazıların e-posta adresinize otomatik olarak gelmesini sağlayabilirsiniz.
Yazıyı başkalarıyla paylaşabilirsiniz;
Arşiv sayfasından tüm yazılarımı görebilirsiniz.
Yazıya yorum yapabilir, yapılan yorumları RSS 2.0 beslemesiyle takip edebilirsiniz veya sitenizden geri izleme yapabilirsiniz.
Web teknolojilerini takip etmeyi çok seven, genellikle en sevdiği programlama dili olan php ve onun kankası MySQL hakkında yazılar yazan, internet sitelerinde neXus veya nXs olarak tanınan Hüseyin Berberoğlu adlı kişinin web günlüğündesiniz… ayrıntı..
oyyla.com
Ekim 27th, 2007 at 23:55
Php ile Mysql’e istediğimiz formatta (gün-ay-yıl) tarih yazdırmak
normalde mysql’e gün ay yıl şeklinde yazdırılamıyor.. Bu şekilde tarihleri nasıl kullanacağımız anlatılıyor
Uğur SAMSA
Ocak 12th, 2008 at 23:47
“Şimdi bunun php kodunu yazalım..” bölümündeki kodda hata var galiba Hüseyin. Birinci $_POST['yil'] yerine $_POST['gun'] gelmesi gerekiyor.
mysql_query kullanarak veritabanına yazdıyoruz demişsin ama kodlar yok
Bu sayfaya google’da alttaki satırı arayıp geldim:
“tarihi veritabanına yazdırma php”. Açıklarsan sevinirim.
Hüseyin Berberoğlu
Ocak 13th, 2008 at 00:26
hayır sondaki yil’in yerine gun geliyor. Çünkü mysql veritabanı o formatı kabul ediyor. Sorun da bu zaten.. Bu arada insert kodunu ekledim.. Şuan ki yazıda problem yok
Uğur SAMSA
Ocak 13th, 2008 at 12:51
“Peki gün-ay-yıl formatında tarihleri nasıl kullanacağız ?” diye okuyunca veritabanına da öyle kaydetmek istiyoruz diye düşündüm.
Bir sorum daha olacak. Bu verileri biz gönderdiğimize göre neden kafamıza göre sıra vermiyoruz? Yani gün-ay-yıl diye kayıt edebiliriz ya da ay-yıl-gün şeklinde. Çekerken de o şekilde çekip kullanabiliriz. Benim göremediğim sorun ne?
Hüseyin Berberoğlu
Ocak 13th, 2008 at 13:05
Başlık ve ilk cümlemde belirtmiştim..bu mümkün değil.. mysql sadece tek formatı kabul ediyor. zaten problem de bu..
Uğur SAMSA
Ocak 13th, 2008 at 16:55
Peki bu işi varchar kullanarak halledemez miyiz ben de onu soruyorum. Alttaki gibi yani;
$tarih = getdate();
$gonderilecek= ($tarih['year']-2000).”-”.$tarih['mon'].”-”.$tarih['mday'].”-”.($tarih['hours']+7).”-”.$tarih['minutes'].”-”.$tarih['seconds'];
Hüseyin Berberoğlu
Ocak 13th, 2008 at 17:10
eğer mysql veritabanındaki alanı varchar yapmaktan bahsediyorsan bu mümkün. fakat o şekilde yaparsan sql sorgularıyla tarih işlemleri yapamazsın. sql sorgusuyla iki tarih arasındaki farkı bulma, tarihden gün çıkarma gibi işlemleri yapabiliyoruz.. yapabilmek içinde alanın tarih formatında olması gerek
Uğur SAMSA
Ocak 13th, 2008 at 21:46
Hmm anladım tam olarak. Alana kaydettiğimiz tarih ile şimdiki tarih arasındaki farkı nasıl bulabiliriz peki? Bir de bulduğumuz sonuç saniye mi yoksa dakika cinsinden mi olur? Çok soru sordum ama iyi bir kaynak oldu bu sayfa
Hüseyin Berberoğlu
Ocak 13th, 2008 at 21:55
$kalan = mysql_result(mysql_query(”SELECT DATEDIFF(tarihAlanin,CURDATE()) as kalan FROM tablo WHERE kayitID=2 LIMIT 1″),0);
bu kod ile kayitID si 2 ye eşit olan kaydın tarihAlanin alanında bulunan tarih ile şuanki tarih arasındaki farkı gün cinsinden buluyoruz
timeDiff te aynı şekilde yapılabiliyor. http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html#function_timediff bu adreste ayrıntılı bilgi var..