Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]data wpisana mimo że jest pusta
Forum PHP.pl > Forum > Przedszkole
neurogen
pole w bazie mysql daty urodzenia jest NULL ale pobrana przez php wartość pola wyświetla datę jako 01-01-1970. jak to naprawić?
Neutral
Pokaż w jaki sposób wyciągasz wartość z tego pola w PHP.
neurogen
$urodziny = date('d-m-Y', strtotime($row['urodziny']));
Neutral
Odpowiedź jest zależna od tego, co masz w zmiennej $row['urodziny'], gdybyś mógł, to wklej tutaj zawartość z tej zmiennej, napisz tak:

  1. var_dump($row['urodziny']);


Podaj jeszcze typ kolumny z bazy z której wybierasz datę. Czy jest to timestamp, czy coś innego.
neurogen
typ kolumny date z wartością domyślną NULL
var_dump($row['urodziny']); wyświetla słowo NULL
Neutral
  1. $zone = new DateTimeZone('Europe/Warsaw');
  2. $timestamp = new DateTime(null, $zone);
  3. $timestamp_val = $timestamp->getTimestamp();
  4. //$timestamp_val = null;
  5.  
  6. if(!is_null($timestamp_val)) {
  7. var_dump($timestamp->setTimestamp($timestamp_val)->format('H:i:s'));
  8. } else {
  9. // here insert any sequence
  10. }
  11.  


Może jest w jakiejś klasie daty i/lub czasu coś co ustawia automatycznie datę i/lub czas, kiedy user poda null'a, ale musiałbyś sprawdzić.

http://php.net/manual/en/book.datetime.php
trueblue
Wartość daty to NULL i taka jest pobrana przez PHP, a nie 01-01-1970. Ty ją przekształcasz na tą wartość. Funkcja strtotime uznaje NULL za 0 i zwraca Ci (wraz z date) początkową datę czasu unixowego.
Czego oczekujesz w takiej sytuacji?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.