Excel dátum átalakítása UNIX időbélyeggé

Egy fél napom ráment, de nem jöttem rá, hogyan is kell PHP-ban használható (UNIX timestamp) formátumra hozni az Excel dátumait. Azt egész hamar sikerült kideríteni, hogy a tárolt számok egész értékei az 1900. január 1. óta eltelt napok számát tartalmazzák, bár még ezt sem sikerül pontosan implementálni, ugyanis van valami kavar a szökőévekkel. A törtrész pedig az időpontot írja le (0.25 = 6:00, 0.5=12:00, stb). Akár hogy próbáltam visszaalakítani másodpercekre, volt egy-két éves csúszás az eredményben. Aztán véletlenül rábukkantam egy egyszerű, PHP-ban írt függvényre (Ray Hauge neve szerepel mellette; Ezúton is köszönöm neki), ami szoroz, oszt, és a jó időpontot köpi ki:

function ExcelToDate($inVar) {
  return date("m/d/Y",(($inVar - 25569)*86400)-7200);
}

OpenOffice is kicsit másként csinálja:

function OOToDate($inVar) {
  return date("m/d/Y",(($inVar - 25568)*86400)-7200);
}
Posted in geek, PHP, szakma | Tagged , , | Excel dátum átalakítása UNIX időbélyeggé bejegyzéshez a hozzászólások lehetősége kikapcsolva

Comments are closed.