Czy można wyszukiwać wiadomości Gmaila według datownika?


13

Czy można przeszukiwać wszystkie wiadomości Gmaila w zakresie bardziej szczegółowym niż w ciągu dnia?

Czy mogę na przykład wyszukać wszystkie wiadomości czatu od 15:00 do 17:00 w dniu 4 października? Jak by to wyglądało?

Patrząc na odniesienie do zaawansowanego wyszukiwania w Gmailu zauważyłem, że wspominają konkretne czasy, ale nie określają formatu, najprawdopodobniej nie jest obsługiwany, ale pomyślałem, że sprawdzę na wypadek, gdyby po prostu wpisałem wyszukiwania w niewłaściwym formacie. .

Przykład: po: 2004/04/16 przed: 2004/04/18

Czyli: wiadomości wysłane między 16 kwietnia 2004 r. A 18 kwietnia 2004 r. *

* Dokładniej: wiadomości wysłane po godzinie 12:00 (lub 00:00) 16 kwietnia 2004 r. I przed 18 kwietnia 2004 r.

Odpowiedzi:


10

Konkretne godziny podano w dokumentacji, aby pokazać, że operator „po” zawiera podaną datę, podczas gdy operator „przed” nie obejmuje tej daty. Nie ma możliwości korzystania z pola wyszukiwania w bardziej szczegółowym zakresie czasu.

Jeśli korzystasz ze skryptów Google Apps, możesz przeprowadzić wyszukiwanie przy użyciu najlepszych dostępnych dat. Następnie możesz filtrować wynikowe wątki na podstawie czasu i innych kryteriów. Przykład:

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
  }
}

UWAGA: operator „po” zawiera podaną datę, podczas gdy operator „przed” wyklucza datę !!
— Habeeb Perwad

Cześć Pyrodogg, czy mogę dołączyć za pomocą etykiety użytkowej? GmailApp.search
— Pathic

Jeśli dobrze rozumiem twoje pytanie, tak, możesz używać etykiet również w kryteriach wyszukiwania. Dawny. „po: 2019/01/01 przed: 2019/02/01 etykieta: zakupy”. Jeśli nie zrozumiałem twojego pytania, daj mi znać.
— Pyrodogg,

8

Możliwe jest określenie zakresu czasu z dokładnością do jednej sekundy, ponieważ operatory wyszukiwania po :, przed :, nowszym :, starszym: akceptują znaczniki czasu Unix . Za pomocą takiego narzędzia, jak Epoch Converter , możesz się tego dowiedzieć

  • 04.10.2014 o 15:00 (na przykład przy użyciu GMT) ma sygnaturę czasową 1412434800
  • Dodaj dwie godziny (7200 sekund) lub użyj tego samego narzędzia: 1412442000

Wyszukiwanie after:1412434800 before:1412442000spowoduje zwrócenie wiadomości w tym 2-godzinnym zakresie.

Ponieważ przejście na czas uniksowy wygląda jak obowiązek, stworzyłem bookmarklet, który sprawia, że ​​ta zamiana jest na miejscu.

Na przykład po wpisaniu

po: 26.07.2015 10:00 przed: 27.07.2015 11:30

w polu wyszukiwania (które nie działałoby tak, jak jest), wywołaj bookmarklet, a ciąg zostanie zastąpiony przez

po: 1437919200 przed: 1438011000

(Bookmarklet interpretuje podane znaczniki czasu w Twoim czasie lokalnym).

Strona, którą podłączyłem, ma zarówno źródło, jak i przeciągalny link do bookmarkletu. Dla kompletności kod źródłowy jest również opublikowany poniżej.

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

Wygląda na after:UNIXTIMESTAMPto, że nie działa poprawnie ...
— Kunok

@Kokok wydaje mi się działać. czy mógłbyś opracować?
— nakhli,

1
@nakhli Ugh .. to jest stare. Ale o ile pamiętam, myślę, że podałem mu zbyt wiele znaków int jako danych wejściowych. Myślę, że musiałem usunąć ostatnie 3 cyfry lub coś w tym rodzaju. W pewnym sensie, jak wspomniano w powyższej odpowiedzi, zwróć uwagę na przykład w odpowiedzi, ma on 10 znaków, a Date.now()zwraca 13 znaków. Coś w tym stylu. Naprawiłem to i skrypt działa od tego czasu, wciąż działa od 0 do 24 w ciągu ostatnich 12 miesięcy i prawdopodobnie będzie działał bardzo długo. Dzięki. : P
— Kunok,

13 znaków, ponieważ zwraca milisekundy
— Shiplu Mokaddim
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.