简体   繁体   English

将Google Calendar事件结束时间添加到脚本中

[英]Adding Google Calendar event end time to script

I have a script which lists Google Calendar events with the start time, name and description but I would like to have the end time too so it reads; 我有一个脚本,其中列出了Google日历事件以及开始时间,名称和描述,但我也希望有结束时间,因此它可以读取;

5:00pm - 6:00pm - Event title - event description 5:00 pm-6:00 pm-活动标题-活动说明

Rather than just what it has at the moment which is just the start time and not the end time. 而不只是当前的时间,它只是开始时间,而不是结束时间。

This is the script I have: 这是我的脚本:

$(document).ready(GCalEvents());

function GCalEvents() {
    var datenow = new Date();
    var curyear = datenow.getFullYear();
    var curmonth = datenow.getMonth() + 1;
    var curdate = datenow.getDate();
    var curhour = datenow.getHours();
    var curmin = datenow.getMinutes();
    var curtz = datenow.getTimezoneOffset();
    //curtz = -480;
    var plusmin = "-";
    if (curtz <= 0) {
        plusmin = "%2B";
    }
    curtz = Math.abs(curtz);
    var curtzmin = curtz % 60;
    curtz = parseInt(curtz / 60);
    if (curtzmin < 10) { curtzmin = "0" + curtzmin; }
    if (curtz < 10) { curtz = "0" + curtz; }

    datenow = curyear + "-" + curmonth + "-" + curdate + "T" + curhour + "%3A" + curmin + "%3A00" + plusmin + curtz + "%3A" + curtzmin;

    var url =  "https://www.googleapis.com/calendar/v3/calendars/{calendarid}/events?alwaysIncludeEmail=false&maxResults=2&orderBy=startTime&showDeleted=false&showHiddenInvitations=false&singleEvents=true&timeMin=" + datenow + "&fields=items(start%2Csummary%2Cdescription)%2CtimeZone&key={key}";
//    var url =  "https://www.googleapis.com/calendar/v3/calendars/{calendarid}/events?alwaysIncludeEmail=false&maxResults=2&orderBy=startTime&showDeleted=false&showHiddenInvitations=false&singleEvents=true&timeMin=" + datenow + "&fields=items(start%2Csummary%2Cdescription)%2CtimeZone&key={key}";

    $.getJSON(url, function(data) {
    var event_start_date_new = new Date();
    event_start_date_new.setDate(event_start_date_new.getDate() - 1);

    for(i in data['items']) {
            item = data['items'][i];

        // event title
            var event_title = item.summary;
            var event_description = item.description;

        // event start date/time
            var event_start_date = new Date(item.start.dateTime);

        // format the date and time
            var month = event_start_date.getMonth();
            var day = event_start_date.getDay();
            var date = event_start_date.getDate();

            var daysArr = new Array();
            daysArr[0] = "Sunday";
            daysArr[1] = "Monday";
            daysArr[2] = "Tuesday";
            daysArr[3] = "Wednesday";
            daysArr[4] = "Thursday";
            daysArr[5] = "Friday";
            daysArr[6] = "Saturday";

            var monthsArr = new Array();
            monthsArr[0] = "January";
            monthsArr[1] = "February";
            monthsArr[2] = "March";
            monthsArr[3] = "April";
            monthsArr[4] = "May";
            monthsArr[5] = "June";
            monthsArr[6] = "July";
            monthsArr[7] = "August";
            monthsArr[8] = "September";
            monthsArr[9] = "October";
            monthsArr[10] = "November";
            monthsArr[11] = "December";

            var hour = event_start_date.getHours();
            var min = event_start_date.getMinutes();
            if (min < 10) { min = "0" + min; }
            if (hour < 11) {
        var ampm = "am";
        if (hour == 0) { hour = 12; }
            } else {
        var ampm = "pm";
        if (hour > 12) { hour = hour - 12; }
            }
            if (hour < 10) { hour = "&nbsp;&nbsp;" + hour; }

            var event_start_str = daysArr[day] + ", " + monthsArr[month] + " " + date;
            var event_time_str = hour + ":" + min + " " + ampm;

            if (event_start_date.getDate() != event_start_date_new.getDate()) {
        event_start_str = "<div class=\"calendar_date\"><strong>" + event_start_str + "</strong></div>";
        event_start_date_new = event_start_date;
            } else {
        event_start_str = "";
            };



            // Render the event
            $("#gcal-events").last().before("<div class=\"calendar_item\"><li>" + event_time_str + "&nbsp;-&nbsp;" + event_title + "<p><small>" + event_description + "</small></p></ul>" + "</li></div>");
    }
    });
};

If anyone is able to help with that to reversion the current script, that would be great. 如果有人能够帮助您还原当前脚本,那将很棒。

The Events resource returns start and end dates as well (JSON format that has date , dateTime , timeZone attributes). Events资源也返回startend日期(具有datedateTimetimeZone属性的JSON格式)。

Based on your code, you're not using the end attribute which is why you're not having any values for the end date displayed. 根据您的代码,您没有使用end属性,这就是为什么显示的结束日期没有任何值的原因。 Your code for the start date is alright, so you can just re-implement it for the end attribute. 您的开始日期代码没问题,因此您只需为end属性重新实现即可。

Hope this helps! 希望这可以帮助!

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM