我想根据日期字段删除对象。
目前,我使用此代码成功删除了超过1天的事件:
function deleteOldEvents() {
var today = new Date();
var days = 1;
var time = (days * 24 * 3600 * 1000);
var expirationDate = new Date(today.getTime() - (time));
var query = new Parse.Query('Events');
// All events have more than 1 days
query.lessThan('date', expirationDate);
query.find().then(function (Events) {
Parse.Object.destroyAll(Events, {
success: function(success) {}, error: function(error) {}
});
});
}
但是现在,我想删除超过12小时的事件:
function deleteOldEvents() {
var today = new Date();
var time = (12 * 3600 * 1000);
var expirationDate = new Date(today.getTime() - (time));
var query = new Parse.Query('Events');
// All events have more than 12 hours
query.lessThan('date', expirationDate);
query.find().then(function (Events) {
Parse.Object.destroyAll(Events, {
success: function(success) {}, error: function(error) {}
});
});
}
此代码删除超过14小时但不是12小时的事件...也许我必须使用UTC?我在法国(UTC + 2),这可能是为什么删除事件的时间超过14小时,而不是12小时?
如何在javascript中使用UTC?
答案 0 :(得分:0)
您的代码有效,并且您对UTC问题的看法是对的 - Date.getTime()
返回自UTC时间1970年1月1日以来的毫秒数。对于与UTC不同时区的国家/地区,您需要合并一个偏移量。
使用Date.getTimezoneOffset()
来纠正UTC差异:
// getTimezoneoffset returns offset in minutes, so converting to milliseconds...
var offset = today.getTimezoneOffset()*60*1000;
var expirationDate = new Date(today.getTime() - (time) + (offset));