Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> php EXCEL, czytanie daty z xslx
maksimus86
post 17.12.2009, 15:54:16
Post #1





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 2.12.2007

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


Witam,
Mam następujący problem. Zaimportowałem plik xslx i teraz zamiast otrzymać datę w formacie taki jak sobie tam zapisałem czyli 2008-01-15 otrzymuję wartość 39462. Czy ktoś wie jak wyciągnąć z tego datę w formacie rrrr-mm-dd.
Dziękuję za pomoc
Go to the top of the page
+Quote Post
and_woj
post 18.12.2009, 11:13:04
Post #2





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 22.10.2009

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


Zmień format komórki na datę (menu Format/Komórki...).

Ten post edytował and_woj 18.12.2009, 11:13:22
Go to the top of the page
+Quote Post
zegarek84
post 18.12.2009, 13:59:15
Post #3





Grupa: Zarejestrowani
Postów: 1 332
Pomógł: 294
Dołączył: 12.10.2008
Skąd: Olkusz

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


Cytat(maksimus86 @ 17.12.2009, 15:54:16 ) *
...Zaimportowałem plik xslx i teraz zamiast otrzymać datę w formacie taki jak sobie tam zapisałem czyli 2008-01-15 otrzymuję wartość 39462. Czy ktoś wie jak wyciągnąć z tego datę w formacie rrrr-mm-dd...

zaimportowałeś do skryptu php??...

ale w pierw może o tych wartościach - exel i calk przechowuje daty w formacie liczbowym a wyświetla w zdefiniowanym dzięki czemu możliwe są operacje na dacie typu:


data + 1 = data następnego dnia

data2 - data1 = liczba dni między datami itd...

i mała wzmianka o excelu (nie wiem jak ten 2009) - on nie potrafi "normalnie" przechowywać dat poniżej roku 1900, calc potrafi...

i o liczbach ciąg dalszy - jak już zauważyłeś liczby całkowite odpowiadają liczbom dni pełnych - więc sekundy/minuty to to co za przecinkiem....

pasowało by teraz wiedzieć kiedy jest początek:

YYYY-MM-DD HH:MM:SS

Kod
1899-12-30 00:00:00    => 0
1899-12-31 00:00:00    => 1
1900-01-01 00:00:00    => 2
1900-01-02 00:00:00    => 3
1900-01-03 00:00:00    => 4
1900-01-04 00:00:00    => 5
1900-01-05 00:00:00    => 6

czyli jednym słowem te cyfry to liczba dni od daty początkowej winksmiley.jpg


itd...


to teraz sobie przelicz wartości do funkcji date i już jesteś w domu - zwróć uwagę na znacznik czasu jaki jest i jak się te cyfry różnią - trochu pomyśl winksmiley.jpg...

ps. w calcu daty poniżej 1900 roku mają liczby ujemne - no wyjątek pierwsze cyfry ;p - bo wartości z calca wziąłem teraz ;p

Ten post edytował zegarek84 18.12.2009, 14:00:21


--------------------
Jeśli twoja ręka rusza do przodu powstrzymaj swój gniew; gdy wyprzedza cię twój gniew - wycofaj rękę.

Go to the top of the page
+Quote Post
maksimus86
post 18.12.2009, 14:21:40
Post #4





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 2.12.2007

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


Panowie sprawa jest prosta, wystarczyło poszukać odpowiedniej klasy w PHPExcel i z niej wybrać odpowiednią funkcje do dekodowania daty z xslx( pobrałem osobno dzień miesiąc i rok - działa na każdym formacie daty podanym.). Trochę dłubania w wypisanym zestawie funkcji i sprawa jasna
Go to the top of the page
+Quote Post
eMCeH
post 9.12.2012, 14:12:35
Post #5





Grupa: Zarejestrowani
Postów: 48
Pomógł: 1
Dołączył: 1.04.2012
Skąd: Świętokrzyskie

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


jeśteśmy w "gotowe rozwiązania" i poprzednik nie wpisał to ja piszę:

  1. $odczytData = PHPExcel_Style_NumberFormat::toFormattedString($cell, "DD.MM.YYYY");


można stosować inne formaty daty np. "D/M/YY"

pozdrawiam
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: 14.08.2025 - 14:57