Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: SQL Datetime, mktime() i date()
Forum PHP.pl > Forum > PHP
starach
Cześć. Mam taki oto kod.
  1. <?php
  2. /**
  3.  * Changes date format from database datetime field format (Y-m-d H:m:s) to unix timestamp
  4.  * @param string $datetime
  5.  */
  6. public static function datetime2timestamp($datetime)
  7. {
  8. $datetime = explode(' ', $datetime);
  9. $day = explode('-', $datetime[0]);
  10. $time = explode(':', $datetime[1]);
  11. return mktime($time[0], $time[1], $time[2], $day[1], $day[2], $day[0]);
  12. }
  13. /**
  14.  * Changes date format from unix timestamp to database datetime field format (Y-m-d H:m:s)
  15.  * @param string $timestamp
  16.  */
  17. public static function timestamp2datetime($timestamp)
  18. {
  19. return date('Y-m-d H:m:s', $timestamp);
  20. }
  21. ?>
Wywołanie:
  1. <?php
  2. $timestamp = DB::datetime2timestamp(date('Y-m-d H:m:s'));
  3. $date = DB::timestamp2datetime($timestamp);
  4.  
  5. $timestamp2 = time();
  6. $date2 = DB::timestamp2datetime($timestamp2);
  7.  
  8. echo "$timestamp<br>$timestamp2<br><br>$date<br>$date2";
  9. ?>
Wyświetla mi takie wyniki:
Cytat
1215259667
1215260147

2008-07-05 14:07:47
2008-07-05 14:07:47
Skoro uniksowe znaczniki czasu są inne to dlaczego sformatowana data jest taka sama ?!
edit>
I czy przypadkiem gdzieś nie popełniłem jakiegoś kretyńskiego błędu :/
nevt
błąd jest faktycznie banalny, dwukrotnie formatujesz czas za pomocą łańcucha 'Y-m-d H:m:s' ...
widzisz już problem? prawidłowy format to 'Y-m-d H:i:s'
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.