我有商店的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自动调用一周中的正确日期?