Можно ли запрашивать сообщения Gmail по отметке времени?

13

Можно ли искать все сообщения Gmail в диапазоне, более детальном, чем за день?

Например, могу ли я найти все сообщения чата с 15:00 до 17:00 4 октября? Как это будет выглядеть?

Просматривая справку по расширенному поиску в Gmail, я заметил, что они упоминают конкретное время, но не указывают формат, скорее всего, он не поддерживается, но я подумал, что проверю на тот случай, если я просто ввел поиск в неправильном формате. ,

Пример: после: 2004/04/16 до: 2004/04/18

Значение: сообщения, отправленные в период с 16 апреля 2004 г. по 18 апреля 2004 г. *

* Точнее: сообщения, отправленные после 12:00 (или 00:00) 16 апреля 2004 г. и до 18 апреля 2004 г.

oncifer
источник

Ответы:

10

Конкретное время указано в документации, чтобы показать, что оператор «после» включает указанную дату, а оператор «до» - без даты. Нет возможности использовать окно поиска в более конкретном диапазоне времени.

Если вы используете скрипты Google Apps, вы можете выполнить поиск, используя лучшие даты, которые у вас есть. Затем вы можете отфильтровать полученные потоки на основе времени и других критериев. Пример:

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
  }
}
Pyrodogg
источник
ПРИМЕЧАНИЕ: оператор «after» включает указанную дату, а оператор «before» исключает дату !!
Habeeb Perwad
Привет Pyrodogg, я могу присоединиться с использованием метки? GmailApp.search
Pathic
Если я правильно понимаю ваш вопрос, да, вы можете использовать метки также в критериях поиска. Ex. «после: 2019/01/01 до: 2019/02/01 этикетка: покупки». Если я не поняла ваш вопрос, пожалуйста, дайте мне знать.
Pyrodogg
8

Можно указать временной диапазон с точностью до секунды, поскольку операторы поиска после :, before :, newer :, old: принимают метки времени Unix . Используя такой инструмент, как Epoch Converter , вы можете узнать, что

  • 2014-10-04 в 15:00 (например, с использованием GMT) имеет временную метку 1412434800
  • Добавьте два часа (7200 секунд) или используйте тот же инструмент снова: 1412442000

Поиск after:1412434800 before:1412442000вернет сообщения в пределах этого 2-часового диапазона.

Поскольку переход на Unix время выглядит как рутина, я сделал букмарклет, который делает эту замену на месте.

Например, после ввода

после: 2015/07/26 10:00 до: 2015/07/27 11:30

в поле поиска (которое не будет работать как есть), вызовите букмарклет, и строка будет заменена на

после: 1437919200 до: 1438011000

(Букмарклет интерпретирует данные временные метки в вашем местном времени.)

На странице, на которую я ссылаюсь, есть и источник, и перетаскиваемая ссылка с букмарклетом. Для полноты, исходный код также размещен ниже.

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

источник
Кажется, что after:UNIXTIMESTAMPне работает должным образом ...
Кунок
@Kunok, кажется, работает для меня. не могли бы вы уточнить?
Нахли
1
@nakhli Тьфу ... это старый. Но насколько я помню, я думаю, что дал слишком много int chars в качестве входных данных. Я думаю, что я должен был удалить последние 3 цифры или что-то в этом роде. Примерно так, как упоминается в приведенном выше ответе, обратите внимание на пример в ответе, он имеет 10 символов, в то время как Date.now()возвращает 13 символов. Что-то такое. Я исправил это, и с тех пор скрипт работает, он все еще работает 0-24 последние 12 месяцев и, вероятно, будет работать очень долго. Благодарю. : P
Кунок
13 символов, потому что он возвращает миллисекунды
Шиплу Мокаддим