我有一張電子表格,我們用它來記錄我們的工作。我已經將表格中的日期列讀入數組,以便我可以對它們執行操作/計算。這對我不起作用,因爲我在調試器中注意到包含日期的數組的值具有不同的日期值格式。例如,一些顯示爲「16/11/2012」,一些顯示爲(new Date(1355184000000)
)。日期格式之間的轉換
有人可以指出一種方式將它們全部轉換爲統一格式,以便我可以使用它們嗎?
謝謝
我有一張電子表格,我們用它來記錄我們的工作。我已經將表格中的日期列讀入數組,以便我可以對它們執行操作/計算。這對我不起作用,因爲我在調試器中注意到包含日期的數組的值具有不同的日期值格式。例如,一些顯示爲「16/11/2012」,一些顯示爲(new Date(1355184000000)
)。日期格式之間的轉換
有人可以指出一種方式將它們全部轉換爲統一格式,以便我可以使用它們嗎?
謝謝
你想如何顯示日期?你想讓它們成爲'日期對象'還是字符串?您在代碼中顯示的值(新的日期(13551.84億))對應於Mon Dec 10 16:00:00 PST 2012
您可以檢查通過使用Logger.log(new Date(1355184000000))
相反"16/11/2012"
很可能不是一個日期,但一個字符串... (注:奇怪您使用的是「日/月/年」序列,因爲我在您的個人資料中看到您在英國,因此我認爲您會使用mm/dd/yyyy)。
既然你說你需要對這些項目進行一些計算,我猜他們都應該轉換爲日期對象以便在腳本中使用它們。 我建議你看some documentation on date object看看究竟應該如何做,而不會產生錯誤。不要忘了javascript中的日期始終爲日期和時間,單位爲hh:mm:ss和毫秒。您看到的整數值是自1970年1月以來的第一個毫秒數;-)
您也可以執行search on dates in this forum並找到相當多的間隔信息。
這裏是一個小功能來說明:
function playWithTime(){
Logger.log('ref date = '+new Date(0))
var example = "june 30, 2013 23:59:00"
Logger.log(example+' = '+ new Date("june 30, 2013 23:59:00"))
Logger.log(example+' = '+ new Date("june 30, 2013 23:59:00").getTime()+' mS')
}
它將在Logger顯示此:
ref date = Thu Jan 01 1970 01:00:00 GMT+0100 (CET)
june 30, 2013 23:59:00 = Sun Jun 30 2013 23:59:00 GMT+0200 (CEST)
june 30, 2013 23:59:00 = 1372629540000 mS
順便說一句,注意記錄器以不同的方式返回值,這取決於日光節省您的時區...我在比利時,六月在'夏季'時間(CEST)。它也可以在Google服務器的時區PDT或PST中顯示。你不能依靠記錄儀是恆定的(!),但是這是另一個故事;-)
編輯:如果你的日期字符串的形式爲DD/MM/YYYY那麼你或許應該重新排序像這樣的代碼:
function playWithTime2(){
Logger.log('original date string in UK format = 16/11/2012')
var d = "16/11/2012".split('/');
var d_ordered=d[1]+'/'+d[0]+'/'+d[2]
Logger.log('becomes '+d_ordered+' = '+new Date(d_ordered))
}
它返回
original date string in UK format = 16/11/2012
becomes 11/16/2012 = Fri Nov 16 2012 00:00:00 GMT+0100 (CET)
對不起,我將我以前的評論在回答中能夠對其進行格式化更容易。然後刪除它。 –