2012-10-30 13 views
6

Używam php do formatowania daty i wysyłania jej do mysql. Wszystko działa świetnie, dopóki nie przejdę terminów na przyszły rok. Na przykład Mon, 14 Jan, 2013 zostanie przetłumaczone na 2012-01-16. Format jest poprawny, nie tylko data, próbowałem nawet zmienić format, który przekazuję, wciąż bez zmian. Oto co robi Mon, 14 Jan, 2013 i tutaj jest php, który przetwarza go:php strtotime() messes z datą innego roku

$startdate = $_REQUEST['one']; 
$start = date("Y-m-d", strtotime($startdate)); 

jakieś wskazówki, dlaczego czkawka dzieje tylko wtedy, gdy wchodzimy w nowy rok, nawet minione lata?

+0

No _something_ jest źle z dodawaniem 'Mon,'. [this] (http://codepad.org/BXfxxeX5) działa dobrze. Edycja: To też nie działa! – Prasanth

+0

Czy próbowałeś "Pon, 14 stycznia 2012"? To już przeszłość, ai tak się nie uda. (daje '" 2012-01-16 "') –

+0

nie, obecny rok działa dobrze – Osman

Odpowiedz

6

Sprawdź listę here dla listy wszystkich prawidłowych formatów dla strtotime(). Ten, którego używasz, nie jest obecny.

Jeśli chcesz użyć date_create_from_format zamiast, oto jak:

date_create_from_format("Mon, 14 Jan, 2013","D, d M, Y") 
+0

co spowodowałoby, że będzie działać dla wszystkich innych dat? – Osman

+0

@ Mr.SirKingOsman To nie działa dla wszystkich innych dat. Właśnie podałem ci przykład. "Pon., 14 stycznia 2012 r." Jest mylnie interpretowane jako "2012-01-16". Tego rodzaju ciąg byłby trudny do przeanalizowania, ponieważ możliwe jest wpisanie dnia tygodnia, który nie pasuje do daty. –

+0

Widzę, skąd przybywasz, ale kontroluję datę i format, użytkownik właśnie wybiera, próbowałem tego systemu jednak i widzę jego zalety i to działa, dziękuję! – Osman