Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: php EXCEL
Forum PHP.pl > Forum > Gotowe rozwiązania
maksimus86
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
and_woj
Zmień format komórki na datę (menu Format/Komórki...).
zegarek84
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
maksimus86
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
eMCeH
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
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-2024 Invision Power Services, Inc.