你好我正在使用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的一天。 –