2012-05-31 97 views
15

Tengo un script PHP que genera una matriz de datos. Esto se transforma en JSON usando la función json_encode().Convertir la fecha PHP en formato de fecha de javascript

Mi problema es que tengo una fecha dentro de mi matriz y no está en el formato de javascript correcto. ¿Cómo puedo convertir esto en PHP así que es?

$newticket['ThreadID'] = $addticket; 
$newticket['Subject'] = $subject; 
//$newticket['DateCreated'] = date('d-m-Y G:H'); 

En lugar de lo anterior rthe fecha Necesito el equivilant de la función JavaScript

nuevos Fecha()

Cuando la salida del anterior me sale el siguiente "vie 1 de junio de 2012, 11:08:48 GMT + 0100 (horario de verano de GMT) "Sin embargo, si formato mi fecha de PHP para que sea la misma, javascript la rechaza. Confundido ...

¿Alguien puede ayudar?

Respuesta

24

Probablemente deberías hacer uso de una marca de tiempo

$newticket['DateCreated'] = strtotime('now'); 

después convertirlo a una fecha Javascript

// make sure to convert from unix timestamp 
var now = new Date(dateFromPHP * 1000); 
+0

el formato de fecha de javascript es: vie 01 jun 2012 11:08:48 GMT + 0100 (GMT horario de verano) no es una marca de tiempo – LeeTee

+1

No, hay varias formas de instanciar un objeto de fecha, incluyendo una marca de tiempo: http: // www .w3schools.com/jsref/jsref_obj_date.asp –

+3

@LeeTee El formato más fácil y más transportable es una marca de tiempo, que luego puede convertir a lo que desee. – jeremyharris

0
$newticket['DateCreated'] = date('d-m-Y G:H', strtotime($phpDateVariable)); 
+0

$ phpDateVariable ya está en el formato que indica más arriba. Tengo que poner en el formato javascript que es vie 01 de junio de 2012 11:08:48 GMT + 0100 (GMT horario de verano) – LeeTee

+0

¿Estás preguntando cómo formatear una fecha en PHP? Consulte las opciones de formato en la documentación: http://us.php.net/manual/en/function.date.php –

0

Si desea ser más preciso con su marca de tiempo, se debe utilizar microtime() en lugar de ahora().

Eso le da:

echo round(microtime(TRUE)*1000); 

Para un milisegundo, fecha y hora Javascript-como en php.

5

Es bastante simple.

código PHP

:

$formatted_date = $newticket['DateCreated'] = date('Y/m/d H:i:s'); 

Javascript código:

var javascript_date = new Date("<?php echo $formatted_date; ?>"); 
2

es muy simple, yo soy el uso esto:

new Date("<?= date('Y/m/d H:i:s'); ?>"); 
1

Javascript clase Date es compatible con la norma ISO 8601 formato de fecha por lo Yo recomendaría:

<?php 
     date('c', $yourDateTime); 
     // or for objects 
     $dateTimeObject->format('c'); 
?> 

documentación dice que: formato de caracteres 'c' es la norma ISO 8601 de fecha (agregado en PHP 5)
ejemplo: 2004-02-12T15: 19: 21 + 00: 00

para más información: http://php.net/manual/en/function.date.php

Cuestiones relacionadas