webmaster webmastering webdesign

Jesteś tutaj: webmade.org >> porady >> php + mysql

Odpowiedni format daty

autor: Patryk 'yarpo' Jar, ostatnia modyfikacja: 2007-08-13

szukaj: formatowanie daty formatowanie daty uniksowy znacznik czasu uniksowy znacznik czasu US English date format US English date format date() date() mktime() mktime() php php

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

Osoby czytające tę publikację przeglądały również:

Chcesz zostać programistą?

Poznaj 6 kroków do efektywnej
nauki programowania!

 

valid XHTML
valid CSS
© 2004-2008 copyright by webmade.org