Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Kłopoty z zapisem dat w MySQL
Forum PHP.pl > Forum > PHP
bartyk
Witam,

Mam formularz z "obiektem" kalendarza (skrypt JS), którego wynik zapisuje do bazy MySQL.

Data jest przekazywana w $_POST poprawnie, ale po zapisaniu zaczynają się schody:

Kod
dla klucza ShowGet calDocDate wartosc 23/08/2005


Kod
$tmp['doc_date']=date('Y-m-d',strtotime($this->MyGet->MyGet['calDocDate']));


wynik w bazie -> 2006-11-08

sad.gif

Zupełnie nie wiem co jest źle. Zwłaszcza, że czasami data zapisywana jest poprawnie.

Będę wdzięczny za pomoc

Pozdrawiam

Bartek
TomASS
Do knowersji daty, napisałem sobie funkcję:

  1. <?php
  2.  
  3. function zwroc_date($data){
  4.  $data = strtr($data,",",'-');
  5.  $data = strtr($data,".",'-');
  6.  $data1 = explode("-",$data);
  7.  if(strlen($data1[0])==1) $data1[0]='0'.$data1[0];
  8.  if(strlen($data1[1])==1) $data1[1]='0'.$data1[1];
  9.  if(strlen($data1[2])==1) $data1[2]='0'.$data1[2];
  10.  
  11.  if(strlen($data1[0])==4){
  12. $rok = $data1[0];
  13. $miesiac = $data1[1];
  14. $dzien = $data1[2];
  15.  }
  16.  else if(strlen($data1[0])==2){
  17. $rok = $data1[2];
  18. $miesiac = $data1[1];
  19. $dzien = $data1[0];
  20.  }
  21.  
  22.  if(strlen($rok)<4 OR !is_numeric($rok) OR $rok<1990 OR $rok>2500) return 0;
  23.  if(strlen($miesiac)<2 OR !is_numeric($miesiac) OR $miesiac<1 OR $miesiac>12) return 0;
  24.  if(strlen($dzien)<2 OR !is_numeric($dzien) OR $dzien<1 OR $dzien>31) return 0;
  25.  return $data2 = $rok.'-'.$miesiac.'-'.$dzien;
  26. }
  27.  
  28. ?>


Może się przyda.
nospor
format, który ty przedstawiasz jest zły dd/mm/rrrr
powinien byc mm/dd/rrrr
Spowodowane jest to tym, że nasi "przyjaciele amerykanie" dziwnie podchodza do dat

  1. <?php
  2.  
  3. echo date('Y-m-d',strtotime('08/23/2005'));
  4.  
  5. ?>
i jest dobrze smile.gif
bartyk
Akurat sytuacja dotyczy "przyjaciół Niemców" stąd data taka a nie inna.

Czy w związku z tym muszę najpierw przeformatować datę??

BTW. Jak mogę sprawdzić ustawienia regionalne u "klienta" - wiem, że pytanie bardziej z JS, ale może akurat ktoś wie.
mike
Możesz sprawdzić skąd jest internauta ( np.: przy pomocy ip-to-country ) i zastosować odpowiedni format daty.
bartyk
Cytat(mike_mech @ 2005-08-30 13:17:02)
Możesz sprawdzić skąd jest internauta ( np.: przy pomocy ip-to-country ) i zastosować odpowiedni format daty.

Cytat
Możesz sprawdzić skąd jest internauta ( np.: przy pomocy ip-to-country ) i zastosować odpowiedni format daty.


W moim przypadku to się nie sprawdzi. Ja nadaję z Polski, a regional mam ustawione na "Germany". sad.gif
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.