你好我正在使用fullcalendar jQuery插件來創建一個日曆應用程序。當我呼籲事件的啓動方法對象的日期格式我得到的是這樣的:如何解析fullcalendar event.start方法上的事件開始時間?
ISO格式:
太陽2011年11月27日6時30分00秒GMT + 0200(EET)
現在我只想保留時間和事件的分鐘:
6小時
30分鐘
在我們的例子中。
如何僅使用JavaScript修剪/解析時間?
你好我正在使用fullcalendar jQuery插件來創建一個日曆應用程序。當我呼籲事件的啓動方法對象的日期格式我得到的是這樣的:如何解析fullcalendar event.start方法上的事件開始時間?
ISO格式:
太陽2011年11月27日6時30分00秒GMT + 0200(EET)
現在我只想保留時間和事件的分鐘:
6小時
30分鐘
在我們的例子中。
如何僅使用JavaScript修剪/解析時間?
您可以使用Date.parse:
var your_date = "Sun Nov 27 2011 06:30:00 GMT+0200 (EET)";
var t = Date.parse(your_date); // date in milliseconds since January 1, 1970
var d = new Date(t);
d.getHours(); // 6 hours
d.getMinutes(); // 30 minutes
在http://www.w3schools.com/jsref/jsref_obj_date.asp看看更多的JavaScript的日期選項。
謝謝這是完美的作品。 –
您可以使用Date.parse
但new Date
使用時,你獲得的當前時區 Date對象,所以用在不同的計算機不同的小時值。
更強大的選項是使用正則表達式。如果格式總是像您張貼,則小時可通過該正則表達式獲得:
/ (\d+):/
這意味着:
對於幾分鐘它是類似的東西,但那些在兩邊都用冒號包圍:
/:(\d+):/
然後可以解析號碼取出來經由.exec(str)[1]
,其中1
是組1,用括號限定。
轉換爲數字可以用+str
做到:
var str = "Sun Nov 27 2011 06:30:00 GMT+0200 (EET)",
hours = +/ (\d+):/.exec(str)[1]; // 6
minutes = +/:(\d+):/.exec(str)[1]; // 30
非常感謝您 –
對於簡單的匹配,使用'String.prototype.match(正則表達式)','不RegExp.prototype.exec(字符串)': '變種小時= +(str.match(/(\ d +) :/)|| [大,NaN])[1];' – PointedEars
答案是有點複雜,因爲你可以簡單地使用字符串中的JavaScript Date()
構造是這樣的:
var d = new Date("Sun Nov 27 2011 06:30:00 GMT+0200 (EET)");
但是撥打電話d.getHours()
可能不會導致您想要的值,因爲JavaScript會將日期轉換爲您的本地時區。例如,在德國做alert(d)
對我產生:
Sun Nov 27 2011 05:30:00 GMT+0100 (CET)
如果這是你想要的,你就大功告成了。否則,您需要將其轉換爲所需的時區。
現在,這是確定的,因爲它的日曆我想每個當地時間:) 謝謝! –
我倒沒到jQuery的(我會盡量避免它),所以我認爲他們做了正確的事情,並存儲在Date
實例。如果是這樣的話,你只看到(本地化)串Date
實例表示(好像你叫其toString()
法),你可以使用它的原型方法檢索組件:
var d = jQuery(…).whatever(…);
var hours = d.getHours();
var minutes = d.getMinutes();
或
var hours = d.getUTCHours();
var minutes = d.getUTCMinutes();
取決於您感興趣的內容。無需解析。
另外,如果我想解析日「太陽報」?因爲getDay方法返回數字0-6的一天。 –