我正在从谷歌日历中提取事件。
我能看到一个活动日期:
var date = when.split("T")[0];
console.log(date);
这会输出2016-01-07
。然后我将它放入一个对象内的数组中:
allEvents.push({
eventDate:date,
eventTime:time,
eventTBD:TBD
});
然后,当我再次去抓日期时:
$.each(allEvents, function(i, v){
var eventDate = new Date(v.eventDate);
if(eventDate > startDate && eventDate < endDate){
console.log(v.eventDate);
console.log("Show This Date: " + eventDate);
}
});
1月份,我得到了这个输出:
2016-01-07
Show This Date: Wed Jan 06 2016 19:00:00 GMT-0500 (EST)
三月份,我得到了这个输出:
2016-03-19
Show This Date: Fri Mar 18 2016 20:00:00 GMT-0400 (EDT)
它显示我刚刚展示的日期前一天...似乎是5个小时的休息时间?我需要考虑到这个吗?我该怎么做?
答案 0 :(得分:0)
解析日期时的默认时区是UTC。如果您想使用客户端时区,您可以调整日期,以便它在浏览器的时区中的正确时间出现:
var eventDate = new Date(v.eventDate);
var ms_per_minute = 60000;
eventDate.setTime( eventDate.getTime() + eventDate.getTimezoneOffset()*ms_per_minute );
否则,只要您显示日期,就可以使用UTC:
console.log("Show This Date: " + eventDate.toUTCSTring() );
答案 1 :(得分:0)
我认为moment.js可以帮助你进行约会操作。
这是你的小提琴
jQuery(document).ready(function($) {
var the_date_string = $('#in-date > pre').text();
var result = moment(the_date_string, 'YYYY-MM-DD'); //here is more info about that http://momentjs.com/docs/#/parsing/string-format/
$('#out-date > pre').text(result);
});
&#13;
body {
font-family: arial;
}
&#13;
<script src="http://momentjs.com/downloads/moment.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<h1 id="in-date"> INPUT: <pre>2016-01-07</pre></h1>
<h1 id="out-date"> OUTPUT: <pre></pre></h1>
&#13;
竖起大拇指,如果你喜欢它! :)强>
<强> [编辑] 强>
如果您只想要客户端时间戳(采用国际格式),您可以轻松使用moment()
函数
答案 2 :(得分:0)
我知道这很老了,但可能会对某人有所帮助。
我通过在Date参数上添加时间来解决此问题:
var eventDate = new Date(v.eventDate + ' 00:00:00');
您可以在以后删除它