2016-03-31 13 views
0

Tarih alanına bağlı olarak nesneyi silmek istiyorum. Şu an için Parse.com: date ve UTC ile sorgu

, ben bu kod ile fazla 1 gün var etkinlikleri silmek başarılı:

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) {} 
      }); 
    }); 
} 
:

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) {} 
      }); 
    }); 
} 

Ama şimdi, ben daha 12hours daha var olayları silmek istiyorum

Bu kod 14 saatten fazla olmayan, 12 saat değil, etkinlikleri silebilir ... belki UTC kullanmalıyım? Fransa'dayım (UTC + 2), bu neden olayları 14 saat değil 14 saatten fazla siliyor?

Javascript'te UTC'yi nasıl kullanabilirim?

+1

Neden expirationDate' 'Fransa'da için ofset için sadece doğru mu? Zaten bunun için 'zaman' yaptık ... –

+0

@AkshatMahajan Evet ama bunun en iyi seçim olduğunu bilmiyordum – Viny76

cevap

0

Kodunuz çalışıyor ve UTC sorunuyla ilgili haklısınız - Date.getTime(), UTC saatinde 1 Ocak 1970'ten beri geçen milisaniye sayısını döndürür. UTC'den farklı bir saat diliminde olan ülkeler için bir ofset eklemeniz gerekir.

Kullanım Date.getTimezoneOffset() UTC farklılığı düzeltmek için:

// getTimezoneoffset returns offset in minutes, so converting to milliseconds... 
var offset = today.getTimezoneOffset()*60*1000; 
var expirationDate = new Date(today.getTime() - (time) + (offset));