Unix zaman damgası ve mysql tarih: doğum

4 Cevap php

I have a really basic question concerning unix timestamp and mysql date. I'm trying to build a small website where users can register and fill in their birthdate.

Sorun unix 1 Ocak 1970 ile başlar olmasıdır. I kullanıcıları, tarih gibi formu tarihlerde yaşını hesaplamak Şimdi eğer bu yüzden üzerine ('MDY', $ unix_from_db) ve kullanıcılar ile bu 40 yaş, sağ yaşlı başarısız olur?

Peki bu iş için rigth yolu olacaktır. Maalesef, bu gibi temel soru için, ama ben php ve mysql ile deneyimsiz değilim.

//Edit: Thank you all. I got confused, because, date('m.d.y',mktime(0,0,0,1,1,1890)) and date('m.d.y',-2000) returned 01.01.70 - next time I'll study manual more carefully. I was able to fix my site, thanks again. Too bad I can accept only one answer, they were all equally good.

4 Cevap

On dates before the epoch the number still increases, thus becoming less negative, as time moves forward.

http://en.wikipedia.org/wiki/Unix_time

Önceden dönem tarihleri ​​ile herhangi bir sorun olması gerekir:

<?php
echo date("m-d-Y", mktime(0, 0, 0, 1, 1, 1970));
echo date("m-d-Y", mktime(0, 0, 0, 1, 1, 1969));
echo date("m-d-Y", mktime(0, 0, 0, 1, 1, 1943));
?>

Çıkışlar

01-01-1970
01-01-1969
01-01-1943

1970 öncesi süreleri için Unix zaman damgaları 1 Ocak 1970 yılına kadar saniye sayısını sayma, negatif tamsayılar vardır.

Örneğin, 2/13/1943 olan -848343600

Mysql bir tarih ya da datetime tarih saklayın.

Bununla birlikte tarih gibi çıktı:

date('<format>', strtotime($date_from_db));

strtotime 1970 öncesi tarihler için bazı negatif tamsayı döndürür. tarihi o sadece iyi idare edecek.

Peki ne oldu? Aritmetik negatif sayılar ile çalışır. Başladıklarında dönem sürece sürekli kullanılan olarak hiçbir fark yapar.

Negatif sayılar insanlar da vardır! Ayrımcılık yok! Onların duygularını incitiyor.