Şimdi Ara

Php Veritabanına Tarih kaydetmek

Bu Konudaki Kullanıcılar:
2 Misafir - 2 Masaüstü
5 sn
4
Cevap
0
Favori
3.818
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Arkadaşlar bu sorun herhalde (istediğimiz formatta (gün-ay-yıl) kaydetmek istiyoruz fakat veritabanı (yıl-ay-gün) kaydetmek istiyor )çok sık sorulan
    bir soru farkındayım . Mysql veri tipini date saçerek kaydetmek istiyorum . Varchar yapmak istemiyorum.
    Herkes explode parçala yazdır vs gibi yöntemler bulmuş fakat ben yoğun bir şekilde tarihlerle çalışacağım için
    o yöntem benim işime yaramıyor. Ben şöyle bir şey buldum önce tarihi strtotime ile zaman damgasını alıyorum ve veri tabanına kaydederken de
    fromunix time fonksiyonu ile kaydediyorum . buraya kadar bir sorun yok sorun şurada başlıyor 01-01-1982 kaydettiğimde 31-12-1981 olarak kaydediyor
    veri tabanına. bir türlü aşamadım nerede hata yapıyorum bulamadım . yardımcı olan arkadaşlara çok teşekkür ederim şimdiden .
    Bu konuyla ilgili olarakhttp://www.hberberoglu.com/php-ile-mysqle-istedigimiz-formatta-gun-ay-yil-tarih-yazdirmak/ bilgilerde mevcut







  • fromunix time fonksiyonu dediğiniz nedir bilmiyorum, ama şu işe yaramıyor mu?

    date("Y-m-d", $zaman_damgası);

    < Bu ileti mobil sürüm kullanılarak atıldı >
  • hocam bu fonsiyon zaman damgasını normal tarihe çeviriyor. sizin yazdığınızla aynı işlemi yapıyor fakat 01-01-1980 o şekilde dahi düzgün şekilde kaydetmiyor. o yolda çözsek bile işe yaramaz sonradan farkettim çünkü zaman damgası 1970 yılına kadar 1970 öncesinde patlıyor . Sorunumu çözdüm aşağıdaki yolla şimdi denedim oldu teşekkür ederim ilginiz için. bu sorunun tek çözümü aşağıda .

    http://www.egonomik.com/2010/02/php-mysql-turkce-tarih-formati/



    < Bu mesaj bu kişi tarafından değiştirildi recep1905 -- 28 Ocak 2016; 19:51:56 >
  • recep1905 R kullanıcısına yanıt
    Ayrıntıları merak ettim hocam.

    Şimdi sizin veritabanında tarih türü date olarak kayıt yapıyor sanırım. Yani yıl-ay-gün. Siz sayfada görüntüleme için gün-ay-yıl şekline çeviriyorsunuz. Veritabanına kaydederken de gün-ay-yıl olarak gelen veriyi yıl-ay-gün şekline çevirip kaydediyorsunuz.

    Sadece çevirme olayı için fonksiyon sıkıntısı vardı anladığım kadarıyla.


    MySql için şu fonksiyon sanırım bu işi görüyormuş.

    STR_TO_DATE( '01-01-1980', '%d-%m-%Y' )

    Sonuç: 1980-01-01 şeklinde oluyor. Örnek:

    INSERT INTO `test`(`tarih`) VALUES (STR_TO_DATE( '01-01-1980', '%d-%m-%Y' ))

    tarih sütunu date formatında ve 1980-01-01 şeklinde kayıt eklendi.

    Tersini, yani veritabanındaki 1980-01-01 tarihini 01-01-1980 olarak almak için:

    SELECT DATE_FORMAT(`tarih`, '%d-%m-%Y')

    SELECT DATE_FORMAT(`tarih`, '%d-%m-%Y') AS tarih FROM test

    tarih verisi olarak döner.

    ----------

    Eğer başka bir şeyse ne olduğunu merak ediyorum.

    ----------

    Ayrıca çözüm yöntemi güzel. Ben de onu tek fonksiyon ile halledeyim dedim. :D

    $tarih = preg_replace("/(\d+)-(\d+)-(\d+)/i", "$3-$2-$1", $tarih);

    $tarih değişkeni 1980-01-01 iken 01-01-1980 oldu. :)



    < Bu mesaj bu kişi tarafından değiştirildi nihattr -- 29 Ocak 2016; 0:58:17 >
    < Bu ileti mobil sürüm kullanılarak atıldı >




  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.