使用日历数据

时间:2015-07-02 16:29:57

标签: javascript php api calendar

我有商店的Google日历。商店有不规则的小时数,可能会有变化,因此需要实时显示。我无法不断更改所有者的JavaScript时间,并且所有者拒绝进行任何编码 - 他只能使用Google日历来操纵商店营业时间。此外,所有者不希望Google日历的iframe显示在他的网站上,只显示数据。

解决方案?当商店被打开时,有一个日历"事件"。如果商店已关闭,则当天不会显示任何日历活动。这意味着如果小时数发生变化,则所有者所要做的就是添加,删除或编辑日历上的事件。

我已经整理了一个从Google日历中提取忙/闲信息的代码。

<?php

date_default_timezone_set("GMT");


$request = array(
    'items' => array(
        array('id' => 'REMOVED FOR SECURITY'),
    ),
     'timeMin' => date('c'),
     'timeMax' => date('c', strtotime('+2 month')),
);

$curl = curl_init();

 $options = array(
    CURLOPT_CONNECTTIMEOUT => 5,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HEADER         => false,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_SSL_VERIFYPEER => false,
    CURLOPT_TIMEOUT        => 10,
    CURLOPT_POST           => true,
    CURLOPT_POSTFIELDS     => json_encode($request),
    CURLOPT_HTTPHEADER     => array(
        'Content-Type: application/json',
        'Content-Length: ' . strlen(json_encode($request))
    ),
    CURLOPT_URL            => 'https://www.googleapis.com/calendar/v3/freeBusy?fields=calendars&key=REMOVED FOR SECURITY',
    CURLOPT_USERAGENT      => 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:36.0) Gecko/20100101 Firefox/36.0',
);
curl_setopt_array($curl, $options);

$result = curl_exec($curl);
curl_close($curl);

echo $result;
?>

然后我离开并使用JavaScript解析数据,以便在接下来的七天显示(从2个月的数据中提取数据),他们的小时看起来像是
7/2 11:00 - 14:00
7/6 11:00 - 14:00
7/7 11:00 - 14:00
7/8 11:00 - 14:00
7/9 11:00 - 14:00
7/13 11:00 - 14:00
7/14 11:00 - 14:00

如果您使用Google日历并添加/删除/编辑这7个事件中的任何一个,它会自动在网站上更改。所以一切都很好,很好,在那里花哨。

所有者现在希望数据显示如下:

星期一:(7/6)11:00 - 14:00
周二:(7/7)11:00 - 14:00
周三:(7/8)11:00 - 14:00
星期四:(7/2)11:00-14:00 星期五:关闭了 周六:关闭了 太阳:关闭

使数据看起来像这样的第一步是让JavaScript识别它使用日期的星期几。正如你在这里看到的那样http://www.emich.edu/dining/locations/playspace.php我已经创建了一个window.alert来显示php正在提取的所有数据 - 虽然数据确实提取了完整的日期,但它并没有提取一周中的哪一天。我一直在阅读StackOverflow上的一些其他问题并在网上搜索,但所有添加星期几的情况都倾向于使用硬编码日期或日历,只是添加星期几。这是动态地提取信息,所以我有点不知所措。

如何使用Javascript自动调用一周中的正确日期?

0 个答案:

没有答案