簡體   English   中英

來自字符串的日期,格式為JavaScript Google Apps腳本

[英]Date from string in format javascript google apps script

在我的Web應用程序中,用戶需要填寫日期和時間等字段。 在日期中,他們可以輸入格式為d / m / yy或dd / mm / yy的日期(不幸的是,我無法控制用戶輸入的准確程度)

他們還可以從下拉列表中選擇時間:08:00 am,8.30am,09:00 am,....,05:00 pm

現在,我正在嘗試使用下面的函數將時間和日期字符串轉換為有效的日期對象,但是我得到了“ Date isInvalid Date”輸出。 我應該如何進行呢?

  var timeStartString ="1970/01/01 "+ "10:00am";
  var st1 =createDate("1/12/2013",timeStartString); 
  Logger.log("Date is"+st1);

 function createDate(dateString,timeString)
    {
      var eventDate  = new Date(dateString);
      var eventTime  = new Date(timeString)

      message +="Date String:"+dateString + " timeString "+timeString;

      eventTime.setFullYear(eventDate.getFullYear());
      eventTime.setDate(eventDate.getDate());
      eventTime.setMonth(eventDate.getMonth()); 

      return eventTime;
    }

您可能需要研究使用Moment.js庫,該庫使JavaScript中的日期解析和操作更加容易。 有關如何在Apps腳本中使用它的更多信息,請參見此處 如果日期格式一致,則可以使用自定義格式字符串進行解析。

var date = moment('1970/01/01 10:00am', 'YYYY/MM/DD HH:mma').toDate();

如果將am或pm直接附加到該時間,則Date類將無法識別該時間。 例如, new Date("1/12/2013 10:00am")將返回Invalid Date ,而new Date("1/12/2013 10:00 am")將返回Sat Jan 12 2013 22:00:00 這是一個細微的差異,但這就是解析器的構建方式。 如果將日期與格式正確的時間字符串連接起來,則根本不需要createDate方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM