Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> konwersja daty
john_doe
post 8.10.2013, 08:14:24
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 8.10.2013, 09:07:29
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


--------------------
Niemożliwym jest stworzenie czegokolwiek idiotoodpornego, ponieważ idioci są wyjątkowo pomysłowi.

https://www.aroch.pl
https://themeforest.net/user/aroch
https://www.astroblog.aroch.pl
https://www.4geeks.pl
Go to the top of the page
+Quote Post
john_doe
post 8.10.2013, 09:50:30
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 8.10.2013, 10:28:34
Post #4





Grupa: Moderatorzy
Postów: 36 440
Pomógł: 6290
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.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
freemp3
post 8.10.2013, 10:41:14
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ł 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;


--------------------
Niemożliwym jest stworzenie czegokolwiek idiotoodpornego, ponieważ idioci są wyjątkowo pomysłowi.

https://www.aroch.pl
https://themeforest.net/user/aroch
https://www.astroblog.aroch.pl
https://www.4geeks.pl
Go to the top of the page
+Quote Post
stud3nt
post 8.10.2013, 10:43:54
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
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 30.03.2024 - 07:08