【问题标题】:Apps script : new Date(...) of string应用程序脚本:字符串的新日期(...)
【发布时间】:2013-01-31 04:28:31
【问题描述】:

使用应用程序脚本和谷歌日历我得到events with same name:

function authorize() {
  var oauthConfig = UrlFetchApp.addOAuthService("calendar");
  var scope = "https://www.googleapis.com/auth/calendar";
  oauthConfig.setConsumerKey("anonymous");
  oauthConfig.setConsumerSecret("anonymous");
  oauthConfig.setRequestTokenUrl("https://www.google.com/accounts/OAuthGetRequestToken?scope="+scope);
  oauthConfig.setAuthorizationUrl("https://accounts.google.com/OAuthAuthorizeToken");    
  oauthConfig.setAccessTokenUrl("https://www.google.com/accounts/OAuthGetAccessToken");  
}

function beginEnd(calId, eventName){
  authorize();
  var key = "...";
  var query = encodeURIComponent(eventName); 
  calId = encodeURIComponent(calId);
  var params = {
    method: "get",
    oAuthServiceName: "calendar",
    oAuthUseToken: "always",
  };
  var url = "https://www.googleapis.com/calendar/v3/calendars/"+
    calId+"/events?q=" + query + "&key=" + key;
  var request = UrlFetchApp.fetch(url, params);
  var response = Utilities.jsonParse(request.getContentText());
  var items = response.items;
  for ( i = 0 ; i < items.length ; i++){
    var start = (items[i].start.dateTime);
    var end =  (items[i].end.dateTime);
    Logger.log( [start,end]);
  } 
}

但是,当我尝试将开始转换为新日期时:

var start = (items[i].start.dateTime);
Logger.log(start);
Logger.log( new Date(start) );

我明白了

2013-01-21T15:00:00-03:00
Wed Dec 31 16:00:00 PST 1969

为什么?

【问题讨论】:

    标签: google-apps-script google-calendar-api


    【解决方案1】:

    似乎日期定义不喜欢连字符...

    它就是这样工作的,即使我确信可以找到更好的解决方案(我不是正则表达式专家 ;-)

    Logger.log(new Date('2013-01-21T15:00:00-03:00'.replace(/-/g,'/').replace(/[A-Z]/,' ').substr(0,19)))
    

    【讨论】:

    • 非常感谢,奇怪的是:我在 google chrome javascript 控制台中使用了这种格式:2013-01-21T15:00:00-03:00 并转换为新日期。
    • 我之前也遇到过这个问题,我相信这是因为 Google Apps Scripts 使用的是 JS 1.8 (wikipedia) 并且支持您需要的输入的日期构造函数只有1.8.5 支持more on MDN
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-28
    • 2014-09-30
    • 2018-05-07
    • 1970-01-01
    • 1970-01-01
    • 2019-06-05
    • 1970-01-01
    相关资源
    最近更新 更多