Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Konwersja daty do daty w formacie clarion
busyboy
post
Post #1





Grupa: Zarejestrowani
Postów: 191
Pomógł: 0
Dołączył: 22.02.2004

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
Sephirus
post
Post #2





Grupa: Zarejestrowani
Postów: 1 527
Pomógł: 438
Dołączył: 28.06.2011
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Wystarczyło poszukać...

I znaleźć...
Go to the top of the page
+Quote Post
nospor
post
Post #3





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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ć?
Go to the top of the page
+Quote Post
busyboy
post
Post #4





Grupa: Zarejestrowani
Postów: 191
Pomógł: 0
Dołączył: 22.02.2004

Ostrzeżenie: (0%)
-----


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 ?
Go to the top of the page
+Quote Post
rocktech.pl
post
Post #5





Grupa: Zarejestrowani
Postów: 587
Pomógł: 131
Dołączył: 8.02.2010

Ostrzeżenie: (0%)
-----


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');
Go to the top of the page
+Quote Post
busyboy
post
Post #6





Grupa: Zarejestrowani
Postów: 191
Pomógł: 0
Dołączył: 22.02.2004

Ostrzeżenie: (0%)
-----


Cos nie tak z ta funcja (IMG:style_emoticons/default/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()

Go to the top of the page
+Quote Post
rocktech.pl
post
Post #7





Grupa: Zarejestrowani
Postów: 587
Pomógł: 131
Dołączył: 8.02.2010

Ostrzeżenie: (0%)
-----


Funkcja jest poprawna. Twoja wersja PHP nie spełnia warunku (PHP 5 >= 5.3.0).
Go to the top of the page
+Quote Post
busyboy
post
Post #8





Grupa: Zarejestrowani
Postów: 191
Pomógł: 0
Dołączył: 22.02.2004

Ostrzeżenie: (0%)
-----


Mam wersje PHP 5.2.14 (IMG:style_emoticons/default/sad.gif) czy moglbym prosic o przerobienie funkcji tak aby u mnie działa... dziękuje

Ten post edytował busyboy 5.02.2013, 12:59:20
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 6.09.2025 - 16:31