Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> konwersja daty
john_doe
post
Post #1





Grupa: Zarejestrowani
Postów: 873
Pomógł: 25
Dołączył: 24.07.2005

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


czy w PHP mogę osiągnąć coś takiego, np.

data
2013-10-08

gdy w Excelu zmienię format komórki na liczbowy otrzymuję 77716

czy mogę używając PHP osiągnąć taką konwersję?
Go to the top of the page
+Quote Post
freemp3
post
Post #2





Grupa: Zarejestrowani
Postów: 467
Pomógł: 77
Dołączył: 6.09.2008
Skąd: Miechów / Kraków

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


Nie za bardzo wiem, co chcesz osiągnąc. Jedyne co przychodzi mi do głowy to użycie funkcji strtotime lub klasy DateTime
Go to the top of the page
+Quote Post
john_doe
post
Post #3





Grupa: Zarejestrowani
Postów: 873
Pomógł: 25
Dołączył: 24.07.2005

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


dokładnie to co napisałem
piszę aplikację zintegrowaną z pewnym ERP.

dokładnie chcę osiągnąć coś takiego, że np. w inpucie wybieram sobie datę np. 2013-10-08 wysyłam ją POSTem. Potrzebuję uzyskać z tej daty 41555 ( przepraszam moim 1szym poście zrobiłem błąd z tą cyferką ). Dalej do tej liczby muszę dodać stałą 36161 -> i wtedy dojdę do daty w tym ERP.

przykład Excela jest dobry, dokładnie tego potrzebuję

Go to the top of the page
+Quote Post
nospor
post
Post #4





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




Liczba, ktora podajesz to poprostu liczba dni od 1 stycznia 1900 roku
Cytat
Program Excel przechowuje daty jako uporządkowane liczby kolejne, których można używać w obliczeniach. Domyślnie 1 stycznia 1900 roku to liczba kolejna 1, a 1 stycznia 2008 roku to liczba kolejna 39 448, ponieważ przypada 39 447 dni po 1 stycznia 1900 roku.

Mozesz wiec bez problemu sam sobie ją wyliczyc.
Go to the top of the page
+Quote Post
freemp3
post
Post #5





Grupa: Zarejestrowani
Postów: 467
Pomógł: 77
Dołączył: 6.09.2008
Skąd: Miechów / Kraków

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


No i nospor mnie ubiegł (IMG:style_emoticons/default/smile.gif) Dla ułatwienia dodam, że liczba dni 1 stycznia 1970 wynosi: 25570.
Wystarczy, że policzysz sobie ilość dni od tej daty, dodasz 25570 i masz wynik podawany przez excela:
  1. echo floor(strtotime('2013-10-08') / (60*60*24)) + 25570;
Go to the top of the page
+Quote Post
stud3nt
post
Post #6





Grupa: Zarejestrowani
Postów: 46
Pomógł: 7
Dołączył: 6.01.2012

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


Nie wiem, czy to pomoże, ale:

W PHP masz datę w sekundach od początku epoki unixowej, czyli od 1 stycznia 1970, stąd wynik 1381227152 (teraz);

W Excelu epoka "start" to 1 stycznia 1900 roku. NIE LICZY W SEKUNDACH, tylko w dniach. Stąd (cytuję) data 1 stycznia 2008 jest liczbą kolejną 39448, ponieważ różnica między tymi datami wynosi 39 448 dni (koniec cytatu).

Znając to, wystarczy w php obliczyć liczbę dni między 1 stycznia 1900 a docelową datą, aby uzyskać datę excelową:
http://webmade.org/porady/obliczanie-czasu...-datami-php.php
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: 24.08.2025 - 16:40