我想通過顯示「打開」和「關閉」圖像來顯示企業何時「打開或關閉」。訣竅是,我希望基於來自Google日曆的忙/閒呼叫來獲取信息。到目前爲止,頁面本身正在提取正確的信息,問題是當我用JavaScript來處理數據時,CURRENT時間是正確的,「busy」事件的END時間是正確的,但是啓動時間顯示6小時之前它應該是,我不知道爲什麼或如何糾正它。基於忙/閒呼叫改變圖像
所以PHP是目前:
<!-- Google Calendar for The Commons -->
<?php
date_default_timezone_set("GMT");
$request = array(
'items' => array(
array('id' => 'REMOVED FOR PRIVACY'),
),
'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 PRIVACY',
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和明確其提供的所有信息。
$(document).ready(function() {
$.get("/dining-new/admin/php/commonsgcalendar.php", function (data) {
var currenttime = Date();
var nowDate = parseInt(currenttime.substring(8, 11));
var nowHour = parseInt(currenttime.substring((16, 18)) - 4) * 60;
// its in GMT so to get EST I'm subtracting 4 hours then changing everything into minutes by multiplying by 60
var nowMin = parseInt(currenttime.substring(19, 21));
nowMin = (nowHour - 240) + nowMin;
var firststart = data.indexOf("start");
var startdate = parseInt(data.substring((firststart + 17), (firststart + 19)));
var startHour = parseInt(data.substring((firststart + 20), (firststart + 22)) - 4) * 60;
var startMin = parseInt(data.substring((firststart + 23), (firststart + 25)));
startMin = (startHour - 238) + startMin;
var endDate = parseInt(data.substring((firststart + 53), (firststart + 55)));
var endHour = parseInt(data.substring((firststart + 56), (firststart + 58)) - 4) * 60;
var endMin = parseInt(data.substring((firststart + 59), (firststart + 61)));
endMin = (endHour - 240) + endMin;
var areWeOpenNow = true;=
if (nowDate != startdate) {
areWeOpenNow = false;
} else {
if ((startMin <= nowMin) && (nowMin <= endMin)){
areWeOpenNow = true;
}
}
if (areWeOpenNow) {
$('.areweclosedfive').removeClass('areweclosedfive');
$('#commonsselect').addClass('weAreOpened');
}
});
});
正如我所說的,該功能是整體工作。如果時間是2:01 est,並且事件在下午2:00結束,則標誌顯示關閉。如果是1:30 est,活動開始時間是1:00 est,活動結束時間爲2:00 est,則表示已打開。如果活動開始時間爲晚上8點,時間爲下午2點,則表示它已關閉。 但是,如果開始時間在未來0到6小時之間,那麼數據會回來說事件「繁忙」,並顯示該業務爲「已打開」,即使它不應該在幾小時內打開/忙碌。
我知道數據本身帶有數字信息,而且我使用相同的方法來分配開始時間,因爲我是當前時間和結束時間,所以我想我只是沒有看到問題的根源所在進來。
這就是我在想的事情之一,我該如何糾正它? – petiteco24601
我打算說同樣的事情,但它看起來像你比較一個字符串,而不是值 – Enjayy