首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >需要帮助编写显示日期的代码

需要帮助编写显示日期的代码
EN

Stack Overflow用户
提问于 2021-02-19 03:23:06
回答 1查看 23关注 0票数 0

我有一个用于抓取Google Calendar事件的ajax代码,我想动态地将两个日期放到从Google Calendar获取的URL字符串中

第一个日期(timeMax=2021-02-28)应该获取当前日期并在其上加上30天,第二个日期(timeMin=2021-02-15)应该只获取当前日期

我的假设是,我们将创建to date变量,一个用于第一个日期(timeMax)变量,另一个用于(timeMin)变量。然后将这两个变量放入关联的URL标记中。

任何关于代码应该是什么的帮助都会很好。谢谢!

代码语言:javascript
复制
//Jquery's ajax request
$.ajax({
  type: 'GET',
  url: 'https://www.googleapis.com/calendar/v3/calendars/eaachapter309@gmail.com/events?singleEvents=true&maxResults=30&timeMax=2021-02-28T00:00:00Z&timeMin=2021-02-15T00:00:00Z&orderBy=startTime&key=my_secret_key_goes_here',
  dataType: 'json',
  async: true
}).done(function(data) {
  //once we get a successful response this callback function
  //gets fired, and "data" contains the parsed json file .

  //here we iterate over the object array
  $.each(data.items, function(i, item) {
    //I do this to later format these timestamps
    //set options for date.toLocaleDateString() function

    var options = {
      month: 'short',
      day: 'numeric',
      hour: '2-digit',
      minute: '2-digit'
    };

    let start = new Date(item.start.dateTime).toLocaleDateString('en-US', options);

    let end = new Date(item.end.dateTime).toLocaleDateString('en-US', options);

    let end_splt = end.split(',');

    //append data to the list.

    if (item.status != "cancelled") {
      $('table.isSearch tbody').append(`<tr mbr-list mbr-list-grow="tableColumns"><td class="body-item mbr-fonts-style display-7" width=15%>${item.summary}</td><td class="body-item mbr-fonts-style display-7" width=25%>${start} - ${end_splt[1]}</td><td class="body-item mbr-fonts-style display-7" width=60%>Location: ${item.location}<br><br>${item.description}</td></tr>`);
    }
  });

}).fail(function(e) {
  error(e);
});

var months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>

EN

回答 1

Stack Overflow用户

发布于 2021-02-20 05:11:43

谢谢你,Mark,这确实与其他一些代码调整一起工作。感谢您的参考URL。

代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
  <script>
  //function myDateFunction() {


    // Variable for Date Max in URL string
    var dateMax = new Date(); // Now
    dateMax.setDate(dateMax.getDate() + 30) // Set now + 30 days as the new date
    var dateStringMax = dateMax.toISOString().split('T')[0]

    // Variable for Date Min in URL string
    var dateMin = new Date(); // Now
    dateMin.setDate(dateMin.getDate()) // Set now + 30 days as the new date
    var dateStringMin = dateMin.toISOString().split('T')[0]

    // Set variable for url
    var urlCalendar = 'www.googleapis.com/calendar/v3/calendars/eaachapter309@gmail.com/events?singleEvents=true&maxResults=30&timeMax=ABC123T00:00:00Z&timeMin=XYZ123T00:00:00Z&orderBy=startTime&key=my_secret_key_goes_here';

    urlCalendar = urlCalendar.replace("ABC123", dateStringMax);
    urlCalendar = urlCalendar.replace("XYZ123", dateStringMin);
    urlCalendar = 'https://' + urlCalendar;

    //alert(urlCalendar); //Use for testing to ensure dynamic URL is generated
    //document.write(urlCalendar)
  //}
</script>
<script>
        //Jquery's ajax request

        $.ajax({
               type:'GET',
               url:urlCalendar,
               dataType: 'json',
               async:true
               }).done(function(data){
                       //once we get a successful response this callback function
                       //gets fired, and "data" contains the parsed json file .

                       //here we iterate over the object array
                       $.each(data.items, function(i, item){
                              //I do this to later format these timestamps
                              //set options for date.toLocaleDateString() function

                              var options = { month: 'short', day: 'numeric', hour: '2-digit', minute: '2-digit' };

                              let start = new Date(item.start.dateTime).toLocaleDateString('en-US', options);

                              let end = new Date(item.end.dateTime).toLocaleDateString('en-US', options);

                              let end_splt = end.split(',');

                              //append data to the list.

                              if(item.status != "cancelled"){
                              $('table.isSearch tbody').append(`<tr><td class="body-item mbr-fonts-style display-7" width=15%>${item.summary}</td><td class="body-item mbr-fonts-style display-7" width=25%>${start} - ${end_splt[1]}</td><td class="body-item mbr-fonts-style display-7" width=60%>Location: ${item.location}<br><br>${item.description}</td></tr>`);
                              }
                              });

                       }).fail(function(e){
                               error(e);
                               });

                               var months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
        </script>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66266805

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档