Tengo un datetime de la forma:

var myDate = "2013-06-07T00:00:00.000Z"

Quiero hacer

jQuery.datepicker.parseDate( "yy-mm-dd", myDate);

No me importa la parte del tiempo.

Puedo obtener:

"Extra/unparsed characters found in date: T00:00:00.000Z"

Mejor que he conseguido hasta ahora es:

myDate = myDate.replace('T00:00:00.000Z', '');
myDate = jQuery.datepicker.parseDate("yy-mm-dd", myDate).toUTCString();

Ayuda por favor.

  • Tienes que cambiar el analizador de cadena
  • trate de date.js , una biblioteca libre

6 Comentarios

  1. 19

    Como es el formato de fecha ISO, creo que se puede llamar new Date(myDate) directamente, no es necesario analizar creo

    var date = new Date(myDate);
    • Este parece ser válida para Chrome y el IE, Firefox pero no se va a analizar.
  2. 4

    Si usted no se preocupan por la parte de tiempo, ¿por qué no simplemente

    jQuery.datepicker.parseDate( "yy-mm-dd", myDate.split("T")[0]);

    Tal vez para general DateTime manejo, echar un vistazo a
    moment.js

    • No puede trabajar todo el tiempo!
    • Decía, que el formato es fijo, ¿por qué no funciona? No dividir a veces tomar unas vacaciones?
    • Usted se ha olvidado de cerrar su paréntesis. +1-ing porque esta respuesta hace lo que dice en la lata.
  3. 0

    Puede utilizar split

    var myDate = "2013-06-07T00:00:00.000Z";
    var n=myDate.split("T");
    console.log(n); //Pass the date part only to date picker
    • déjame saber la razón de su downvote así que puedo mejorar
  4. 0

    Mediante la modificación de la Cadena utilizado para describir el formato, puede llegar a hacer esto (suponiendo que el tiempo es siempre cero)

    var myDate = "2013-06-07T00:00:00.000Z",
        d = jQuery.datepicker.parseDate("yy-mm-ddT00:00:00.000Z", myDate);
    d; //Fri Jun 07 2013 00:00:00 GMT+0100 (GMT Daylight Time)

    Sin embargo, esto ignora el hecho de que Z indica la zona horaria UTC y en su lugar se utiliza la zona horaria local (en mi caso BST/GMT+1). Usted puede reparar este rápido aunque.

    d.setMinutes(d.getMinutes() - d.getTimezoneOffset()); //or use UTCMinutes
    d; //Thu Jun 07 2013 01:00:00 GMT+0100 (GMT Daylight Time)
    //which is now correct in terms of timezone
  5. 0

    Si usted quiere algo que va a cambiar tu vida, sólo tiene que utilizar http://momentjs.com/… Es el equivalente de Carbono para PHP. Simple, multi-idioma y de la cruz-los navegadores.

    Por su pregunta va :

    moment("2013-06-07T00:00:00.000Z").format('YY-MM-DD')

    Espero que esto ayuda a los futuros visitantes.

  6. -1

    Lo que acerca de esto:

    jQuery.datepicker.parseDate( "yy-mm-dd", myDate.substr(0, 10) );
    • ¿Crees que es a prueba de fallos???
    • A qué te refieres? Se puede discutir, porque no ayuda a nadie.

Dejar respuesta

Please enter your comment!
Please enter your name here