2012-10-30 19 views
6

Sto usando php per riformattare una data e postarla su mysql. Tutto funziona alla grande fino a quando passo le date per il prossimo anno. Ad esempio Mon, 14 Jan, 2013 sarà tradotto in 2012-01-16. Il formato è corretto, non solo la data, ho anche provato a cambiare il formato che ho passato, ancora nessun cambiamento. Ecco cosa si ottiene Mon, 14 Jan, 2013 ed ecco il PHP che elabora:php strtotime() pasticcia con la data di un altro anno

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

qualche indizio sul motivo per cui l'incidente di percorso avviene solo quando si entra in un nuovo anno, anche anni passati?

+0

Beh, _something_ è sbagliato con l'aggiunta di 'Mon,'. [questo] (http://codepad.org/BXfxxeX5) funziona bene però. Modifica: non funziona neanche! – Prasanth

+0

Hai provato "lun, 14 gen 2012"? Questo è nel passato, e fallirà ancora. (vi dà '" 2012-01-16 "') –

+0

no, l'anno in corso funziona bene – Osman

risposta

6

Dai uno sguardo a here per l'elenco di tutti i formati validi per strtotime(). Quello che stai usando non è presente.

Se si desidera utilizzare date_create_from_format invece, ecco come:

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

cosa avrebbe causato il suo funzionamento per tutte le altre date? – Osman

+0

@ Mr.SirKingOsman Non funziona per tutte le altre date. Ti ho appena dato un esempio 'Mon, 14 Jan, 2012' viene interpretato erroneamente come' 2012-01-16'. Questo tipo di stringa sarebbe difficile da analizzare comunque, perché è possibile inserire un giorno della settimana che non corrisponde alla data. –

+0

Vedo da dove vieni ma controllo la data e il formato, l'utente sceglie, ho provato comunque questo sistema e vedo i suoi vantaggi e funziona, grazie! – Osman