Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: imap_search i problem z SINCE
Forum PHP.pl > Forum > PHP
Wilu88
Witam

Tworze prosty skrypt który ma za zadanie na lokalnym serwerze poobierać maile ze skrzynki i zapisywać do bazy danych, wszystko działa fajnie ale mam problem z warunkiem poboru maila.

Otóż chciałem zrobić tak aby pobierało maile tylko z 4 ostatnich dni. Tak więc zrobiłem coś takiego:

  1. $yesterday = date("Y-m-d", strtotime ("-4 days"));
  2. $searchQuery = 'SINCE ".$yesterday."';


Działa ok, ale nie na wszystkich mailach, gdyż kilka maili w skrzynce ma dziwną datę utworzenia. Gdy sprawdzam date maila za pomocą funkcji
header->date wyświetla mi się prawidłowa data odbioru
natomiast gdy użyje header->udate otrzymuje wynik 1970-01-01 00:00:00.

I wygląda na to że SINCE właśnie sprawdza udate bo gdy zastosuje ten kod co powyżej to omija te maile w których jest zła data udate, gdy zamiast SINCE użyje BEFORE to pobiera tylko te z błędną datą.

Czy jest możliwość użycia SINCE na header->date questionmark.gif
Ruio
Ja bym to zrobił tak:
  1. $time = time() - 86400 * 4;


I później aby to ładnie pokazac:

  1. date("Y-m-d", $time);


Wilu88
Cytat(Ruio @ 30.06.2011, 11:34:37 ) *
Ja bym to zrobił tak:
  1. $time = time() - 86400 * 4;


I później aby to ładnie pokazac:

  1. date("Y-m-d", $time);


No tak tyle że to nic nie zmieni bo dalej SINCE będzie szukało po dacie utworzenia maila, czyli w niektórych przypadkach jest to 1970-01-01 więc na pewno będzie starszy od podanego warunku. Nie problem jest zmienna $yesterday bo ta prawidłowo pryzmuje wartość -4 dni, a sam warunek SINCE
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.