Jesteś tutaj: webmade.org >> porady >> php + mysql
autor: Patryk 'yarpo' Jar, ostatnia modyfikacja: 2007-08-13
Ostatnio miałem okazję pracować z bazą danych, w której występowała kolumna z typem danych datetime. Dane są tam sformatowane nietypowo (jak dla Polaków) w tzw. „ US English date format”:
yyyy-mm-dd hh:mm:ss 2007-07-20 20:23:12
Pech chciał, że musiałem pobierać tę datę od użytkonika... Zrobiłem więc prosty formularz z odpowiednimi polami tekstowymi. Wszystko wydawało się banalne:
<?PHP // tu odczytanie i weryfikacja danych $czas = $rok.'-'.$miesiac.'-'.$dzien.' '.$godz.':'.$mi.':'.$sek; echo $czas; ?>
Jak się jednak szybko okazało, nie było to dobre rozwiązanie. Co jeśli użytkownik podał jednocyfrową liczbę, zamiast np. 09? Należało wprowadzić poprawki:
// time format: "yyyy-mm-dd hh:mm:ss" function createDate($year, $mounth, $day, $hour, $minute, $sec) { return date("Y-m-d h:i:s", mktime($hour, $minute, $sec, $mounth, $day, $year, 1)) ?>
Powyższy kod w pełni rozwiązał cały problem. Funkcja mktime() zwraca uniksowy znacznik czasu, który z kolei przekazuje do funkcji date(). Tym sposobem, po odpowiednim sformatowaniu, otrzymałem gotowy string, który mogłem śmiało używać do działań na bazie danych.
Warto byłoby także zapoznać się z:
Patryk 'yarpo' Jar
szukaj: formatowanie daty uniksowy znacznik czasu US English date format date() mktime() php
Osoby czytające tę publikację przeglądały również:
© 2004-2008 copyright by webmade.org