Gmail iletilerini zaman damgasına göre sorgulamak mümkün müdür?


13

Bir aralıktaki tüm Gmail iletilerini günden daha ayrıntılı bir şekilde aramak mümkün müdür?

Örneğin, 4 Ekim'de 15:00 - 17:00 arasındaki tüm sohbet iletilerini arayabilir miyim? Nasıl görünüyor?

Gmail gelişmiş arama referansına baktığımda , belirli zamanlardan bahsettiklerini fark ettim, ancak formatı belirtmedim, büyük olasılıkla desteklenmiyor, ancak aramaları yanlış biçimde giriyorsam kontrol edeceğimi düşündüm. .

Örnek: sonra: 2004/04/16 önce: 2004/04/18

Anlamı: 16 Nisan 2004 ile 18 Nisan 2004 arasında gönderilen iletiler. *

* Daha doğrusu: 16 Nisan 2004 saat 12: 00'dan (veya 00:00) sonra ve 18 Nisan 2004 tarihinden önce gönderilen iletiler.

Yanıtlar:


10

Belgelerde, "after" operatörünün verilen tarihe dahil olduğunu ve "before" operatörünün tarih dışında olduğunu gösteren belgelerde belirtilmiştir. Arama kutusunu daha belirli bir zaman aralığında kullanmanın bir yolu yoktur.

Google Apps Komut Dosyaları kullanıyorsanız, aramanızı sahip olduğunuz en iyi tarihleri ​​kullanarak yapabilirsiniz. Ardından Zaman ve diğer ölçütlere göre sonuçta oluşan konuları filtreleyebilirsiniz. Misal:

var threads = GmailApp.search("after:2014/09/01 before:2014/09/02",0,100);
var timeFrom = new Date("2014/09/01 10:00:00").getTime();
var timeTo = new Date("2014/09/01 13:00:00").getTime();

for (var i = 0; i < threads.length; i++){
  var timeThreadStart = threads[i].getFirstMessageDate().getTime();

  if(timeThreadStart > timeFrom && timeThreadStart < timeTo){
    //do something
  }
}

NOT: "after" operatörü verilen tarihe dahildir, "after" operatörü ise tarihe özel değildir !!
Habeeb Perwad

Merhaba Pyrodogg, kullanım etiketi ile katılabilir miyim? GmailApp.search
Pathic

Sorunuzu doğru anlarsam, evet arama ölçütlerinde de etiketleri kullanabilirsiniz. Ör. "after: 2019/01/01 önce: 2019/02/01 label: alımları". Sorunuzu anlamadıysam, lütfen bana bildirin.
Pyrodogg

8

Arama işleçleri:: önce :, daha yeni :, daha eski: Unix zaman damgalarını kabul ettikleri için, zaman aralığını bir saniyeye kadar doğrulukla belirlemek mümkündür . Epoch Converter gibi bir araç kullanarak ,

  • 2014-10-04 saat 15: 00'de (örneğin GMT kullanarak) 1412434800 zaman damgası vardır
  • İki saat (7200 saniye) ekleyin veya aynı aracı tekrar kullanın: 1412442000

Arama after:1412434800 before:1412442000işlemi bu 2 saatlik aralıktaki iletileri döndürür.

Unix zamanına dönüştürmek bir angarya gibi göründüğünden , bu değişikliği yerine getiren bir yer imi yaptım .

Örneğin, yazdıktan sonra

sonra: 2015/07/26 10:00 önce: 2015/07/27 11:30

arama kutusunda (olduğu gibi çalışmaz), yer işaretini çağırın ve dize ile değiştirilir

sonra: 1437919200 önce: 1438011000

(Yer işareti, verilen zaman damgalarını yerel saatinizde yorumlar.)

Bağladığım sayfada yer işareti ile hem kaynak hem de sürüklenebilir bir bağlantı var. Tamlık için kaynak kodu da aşağıda yayınlanmıştır.

inp = document.querySelectorAll('input');
for (i in inp) {
  if (/(after|before|newer|older):/.test(inp[i].value)) {
    str = inp[i].value;
    times = str.match(/\d[\d\/: ]*\d/g);
    for (j in times) {
      if (Date.parse(times[j])) {
        str = str.replace(times[j], Date.parse(times[j])/1000);
      }
    }
    inp[i].value = str;
  } 
}

Görünüşe göre after:UNIXTIMESTAMPdüzgün çalışmıyor ...
Kunok

@Kunok bana çalışıyor gibi görünüyor. lütfen biraz açar mısın?
nakhli

1
@nakhli Ugh..bu eski. Ama hatırladığım kadarıyla girdi olarak çok fazla int karakter verdiğimi düşünüyorum. Sanırım son 3 basamağı ya da bunun gibi bir şeyi kaldırmam gerekti. Yukarıdaki yanıtta biraz bahsedildiği gibi, cevaptaki örneği not edin, 10 karaktere sahipken Date.now(), 13 karakter döndürür. Bunun gibi bir şey. Düzelttim ve o zamandan beri senaryo çalışıyor, son 12 ayda 0-24 çalışıyor ve muhtemelen çok uzun bir süre çalışacak. Teşekkürler. : P
Kunok

Milisaniye döndürdüğü için 13 karakter
Shiplu Mokaddim
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.