Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Konwersja daty do daty w formacie clarion
Forum PHP.pl > Forum > Przedszkole
busyboy
Witam serdecznie

Czy istnieje jakas funkcja ktora zamieni ma date ze zwyklego formatu tj. np. 2013-02-03 do formatu clariona (taksie chyba nazywa) czyli w tym przypadku : 77469, wiem w jaki spsob jest obliczana ta data w excelu (2013-02-03 + 36161 = 77469) niestety w php nie mam pojecia jak to zrobic.

Dziekuje za pomoc

Pozdrawiam
BusyBoy
Sephirus
Wystarczyło poszukać...

I znaleźć...
nospor
Wystarczy spojrzec do google by dowiedzieć się, że data clairona to liczba dni, które upłynęły od dnia 28 grudnia 1800
No chyba liczbę dni między jedną datą a drugą potrafisz policzyć?
busyboy
Jezeli odejmuje daty (wyliczam ilosc dni) :

  1. <?php
  2. function date_diff($date1, $date2)
  3. {
  4.  
  5. $d1 = explode('-', $date1);
  6. $y1 = $d1[0];
  7. $m1 = $d1[1];
  8. $d1 = $d1[2];
  9.  
  10. $d2 = explode('-', $date2);
  11. $y2 = $d2[0];
  12. $m2 = $d2[1];
  13. $d2 = $d2[2];
  14.  
  15. $date1_set = mktime(0,0,0, $m1, $d1, $y1);
  16. $date2_set = mktime(0,0,0, $m2, $d2, $y2);
  17.  
  18. return(round(($date2_set-$date1_set)/(60*60*24)));
  19. }
  20.  
  21. echo date_diff( '1800-12-28', '2013-01-31' );
  22. ?>


To zamist wartosci 77466 mam wartosc 15736 - moze jakies wskazowki ?
rocktech.pl
Witam.

  1. function clarionDate($dateTimeString = 'now')
  2. {
  3. $d1 = new DateTime('1800-28-12');
  4. $d2 = new DateTime($dateTimeString);
  5. $interval = $d1->diff($d2);
  6. return $interval->format('%a');
  7. }
  8.  
  9. echo clarionDate('2001-01-01') . PHP_EOL;
  10. echo clarionDate('1801-01-02') . PHP_EOL;
  11. echo clarionDate('-10 days');
busyboy
Cos nie tak z ta funcja sad.gif

  1. <?
  2. function clarionDate($dateTimeString = 'now')
  3. {
  4. $d1 = new DateTime('1800-12-28');
  5. $d2 = new DateTime($dateTimeString);
  6. $interval = $d1->diff($d2);
  7. return $interval->format('%a');
  8. }
  9.  
  10. echo clarionDate('2001-01-01') . PHP_EOL;
  11. echo clarionDate('1801-01-02') . PHP_EOL;
  12. echo clarionDate('-10 days');
  13. ?>


Wyrzuca blad - > Fatal error: Call to undefined method DateTime::diff()

rocktech.pl
Funkcja jest poprawna. Twoja wersja PHP nie spełnia warunku (PHP 5 >= 5.3.0).
busyboy
Mam wersje PHP 5.2.14 sad.gif czy moglbym prosic o przerobienie funkcji tak aby u mnie działa... dziękuje
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.