Ben 70 gibi, ama bu sadece (PHP Saat soru) doğru değil

3 Cevap php

Yani () Benim DB her girişi ile çağrı gizli bir alan depolama süresinden ediyorum. Tek sorun, onlar gibi tüm çıkıp, bir:

16777215

1970 hangi. söyleyemem neden bu sayı, bu mevcut damgası başlangıcı ya da sonu değil, ve her giriş için aynı çünkü. Bir MEDIUMINT (50) MySQL kolon içine gidiyor ve saha şekilde görünüyor:

    <input type="hidden" name="time" value="<?php echo time(); ?>">

Bir döküm sorun mudur? Eminim öyledir. Sunnuva Gun. Bana bunu kontrol edelim ...

Ben de "Metin" için sütun değiştirdi ve en doğru girdi olsun. Bu onunla matematik yapmak için bir numara olmak istiyorsanız Yani, ben bunu kaydetmeden önce bir int dönüştürmek için php kullanmak gerekiyor? Ve sadece merak için, neden daha önce bu numarayı tercih ettiniz?

3 Cevap

Eğer tarihlerini saklamak varsa, ben son derece MySQL Tarih türleri inşa kullanmanızı öneririz. Neden? Sen, (MySQL örneğin, bir ay 13 girmesine izin vermez) daha kolay manuel sorguları oluşturmak tarih doğrulama yapabilirsiniz ve ham verilere bakarak zaman tarih ne olduğunu biliyorum. MySQL de bir satır değişiklikleri zamanı kaydetmek için gereken sütun üzerinde CURRENT_TIMESTAMP () gibi şeyler kullanmanızı sağlayacak.

Tamsayılar olarak Saklama tarihleri ​​çok daha kolay, basit matematik yapmak için yapmak yok ama bu avantaj kodu bittiği hakkında olduğunu düşünüyorum. PHP tarihleri ​​ile başa çıkmak için kullanabileceğiniz güçlü bir Tarih / Saat kütüphaneye sahiptir. Iki tarih arasındaki zaman miktarına bakmak istiyorsanız, :: fark Tarih kullanabilirsiniz. Siz de tarihlerinin zaman ekleyebilir ve çıkarabilirsiniz. (Evet, nesneler yerine işlevlerini kullanmaya karar verirseniz nesnelere karşılık fonksiyonlar vardır.)

Manual entry for Date/Time Objects

16777215 bir MEDIUMINT için maksimum sayıdır. Bunu int veya Bigint yapmak gerekir. Bkz MySQL Manual

Neden tarihleri ​​saklamak için tasarlanmış bir veri türünü kullanmak değil mi?