Autor | Zpráva | ||
---|---|---|---|
M@rtin Profil * |
#1 · Zasláno: 10. 8. 2012, 06:53:06
Následující kód umožňuje stažení a uložení souboru ICS s událostí do kalendáře MS Outlook. Nevím, kde mám chybu, ale od data a času začátku (i konce) musím odečítat 2 hodiny abych měl správné údaje, obávám se že v zimním čase budu odečítat zase jen 1 hodinu. Nevíte prosím jak zajistit, abych nepřičítal a neodečítal nic, abych mohl použít přesná data tak jak jsou v DB bez korekce?
header("Content-Type: text/Calendar; charset=utf-8"); header("Content-Disposition: inline; filename=udalost-do-outlook.ics"); echo "BEGIN:VCALENDAR\n"; echo "PRODID:-//Microsoft Corporation//Outlook 12.0 MIMEDIR//EN\n"; echo "VERSION:2.0\n"; echo "METHOD:PUBLISH\n"; echo "X-MS-OLK-FORCEINSPECTOROPEN:TRUE\n"; echo "X-WR-TIMEZONE:Europe/Budapest\n"; echo "BEGIN:VEVENT\n"; echo "CLASS:PUBLIC\n"; echo "TZID:Europe/Budapest\n"; echo "CREATED:".date('Ymd')."T".date('His')."Z\n"; echo "DESCRIPTION:".iconv('ISO8859-2','UTF-8',$radek1[popis])."\n"; echo "DTEND;TZID=Europe/Prague:".Date('Ymd',$radek1[termindo])."T".Date('Hi',$radek1[termindo]-7200)."00Z\n"; echo "DTSTAMP:".Date('Ymd',Time())."T".Date('Hi',Time())."00Z\n"; echo "DTSTART;TZID=Europe/Prague:".Date('Ymd',$radek1[terminod])."T".Date('Hi',$radek1[terminod]-7200)."00Z\n"; echo "LAST-MODIFIED:".Date('Ymd',Time())."T".Date('Hi',Time())."00Z\n"; echo "LOCATION:".iconv('ISO8859-2','UTF-8',$radek1[misto])."\n"; echo "PRIORITY:2\n"; echo "SEQUENCE:0\n"; echo "SUMMARY;LANGUAGE=cs:".iconv('ISO8859-2','UTF-8',$radek1[nazev])." od: ".Date('H:i',$radek1[terminod])." - ".Date('H:i',$radek1[termindo])."\n"; echo "TRANSP:OPAQUE\n"; echo "ORGANIZER;CN=\"organizator\":MAILTO:webmaster@mojedomena.cz\n"; ?> UID:<?php echo Time()."\n";?> CATEGORIES:Důležité X-MICROSOFT-CDO-BUSYSTATUS:OOF X-MICROSOFT-CDO-IMPORTANCE:2 X-MICROSOFT-DISALLOW-COUNTER:FALSE X-MS-OLK-ALLOWEXTERNCHECK:TRUE X-MS-OLK-AUTOFILLLOCATION:FALSE X-MS-OLK-CONFTYPE:0 BEGIN:VALARM TRIGGER:-PT1440M ACTION:DISPLAY DESCRIPTION:Reminder END:VALARM END:VEVENT END:VCALENDAR |
||
Alphard Profil |
#2 · Zasláno: 10. 8. 2012, 10:06:42
Tak 2 hodiny je v létě náš posun oproti pásmu bez posunu (UTC, Londýn).
Kdybyste používal Datetime třídu a správně nastavená časová pásma, mělo by to fugnovat bez problémů. |
||
M@rtin Profil * |
#3 · Zasláno: 10. 8. 2012, 10:33:13
To znamená, že se má nahradit funkce Date?
echo "DTEND;TZID=Europe/Prague:".Date('Ymd',$radek1[termindo])."T".Date('Hi',$radek1[termindo]-7200)."00Z\n"; |
||
Alphard Profil |
#4 · Zasláno: 10. 8. 2012, 10:40:30
To není jediný způsob. Jen jsem tipl příčinu.
Taky můžete do současného systémum jen dodat dynamicky odečítanou hodnotu, viz O a P parametry u date.
|
||
Barka Profil * |
#5 · Zasláno: 10. 8. 2012, 17:26:29
Můžete prosím uvést příklad jak se ten paramter O nebo P ve funkci
Date používá?
|
||
Časová prodleva: 3 dny
|
|||
M@rtin Profil * |
#6 · Zasláno: 13. 8. 2012, 10:45:31
Tak jsem to spáchal takto:
header("Content-Type: text/Calendar; charset=utf-8"); header("Content-Disposition: inline; filename=udalost-do-ms-outlook.ics"); echo "BEGIN:VCALENDAR\n"; echo "PRODID:-//Microsoft Corporation//Outlook 12.0 MIMEDIR//EN\n"; echo "VERSION:2.0\n"; echo "METHOD:PUBLISH\n"; echo "X-MS-OLK-FORCEINSPECTOROPEN:TRUE\n"; echo "BEGIN:VEVENT\n"; echo "CLASS:PUBLIC\n"; echo "CREATED:".date('Ymd')."T".date('His')."Z\n"; echo "DESCRIPTION:".iconv('ISO8859-2','UTF-8',$radek1[popis])."\n"; echo "DTEND:".Date('Ymd\THi\0\0\Z',$radek1[termindo] - (substr(Date('O'),2,1)*3600))."\n"; echo "DTSTAMP:".Date('Ymd\THi\0\0\Z',Time())."\n"; echo "DTSTART:".Date('Ymd\THi\0\0\Z',$radek1[terminod] - (substr(Date('O'),2,1)*3600))."\n"; echo "LAST-MODIFIED:".Date('Ymd',Time())."T".Date('Hi',Time())."00Z\n"; echo "LOCATION:".iconv('ISO8859-2','UTF-8',$radek1[misto])."\n"; echo "PRIORITY:2\n"; echo "SEQUENCE:0\n"; echo "SUMMARY;LANGUAGE=cs:".iconv('ISO8859-2','UTF-8',$radek1[nazev])." od: ".Date('H:i',$radek1[terminod])." - ".Date('H:i',$radek1[termindo])."\n"; echo "TRANSP:OPAQUE\n"; echo "ORGANIZER;CN=\"organizator\":MAILTO:webmaster@mojedomena.cz\n"; ?> UID:<?php echo Time()."\n";?> CATEGORIES:Důležité X-MICROSOFT-CDO-BUSYSTATUS:OOF X-MICROSOFT-CDO-IMPORTANCE:2 X-MICROSOFT-DISALLOW-COUNTER:FALSE X-MS-OLK-ALLOWEXTERNCHECK:TRUE X-MS-OLK-AUTOFILLLOCATION:FALSE X-MS-OLK-CONFTYPE:0 BEGIN:VALARM TRIGGER:-PT1440M ACTION:DISPLAY DESCRIPTION:Reminder END:VALARM END:VEVENT END:VCALENDAR |
||
Časová prodleva: 12 let
|
0