2014-11-09 19 views
7

ho ottenere alcune Campi data da Postgres con formato simile:Come impostare il formato della data giusta per modificabile aggiornato

"2000-11-30T14: 00: 00.000Z"

posso lo uso nel campo della data modificabile a pagina. Qualcosa di simile:

<a href="#" editable-date="employee.brthday" 
    onbeforesave="updateField($data, 'brthday', employee)"> 
     {{employee.brthday || 'empty' | date:"dd/MM/yyyy" }} 
</a> 

Questa data (come sopra) visualizzata bene. Ma quando voglio modificare questo campo, la data si azzera e ho ottenuto questo messaggio nella console:

Error: [ngModel:datefmt] Expected `2000-12-05T14:00:00.000Z` to be a date http://errors.angularjs.org/1.3.0/ngModel/datefmt?p0=2000-12-05T14%3A00%3A00.000Z 
    at http://localhost:8000/bower_components/angular/angular.js:80:12 
    at Array.<anonymous> (http://localhost:8000/bower_components/angular/angular.js:19453:17) 
    at Object.ngModelWatch (http://localhost:8000/bower_components/angular/angular.js:20555:36) 
    at Scope.$digest (http://localhost:8000/bower_components/angular/angular.js:13957:40) 
    at Scope.$apply (http://localhost:8000/bower_components/angular/angular.js:14227:24) 
    at HTMLAnchorElement.<anonymous> (http://localhost:8000/bower_components/angular-xeditable/dist/js/xeditable.js:831:21) 
    at HTMLAnchorElement.jQuery.event.dispatch (http://localhost:8000/bower_components/jquery/dist/jquery.js:4409:9) 
    at HTMLAnchorElement.elemData.handle (http://localhost:8000/bower_components/jquery/dist/jquery.js:4095:28) 

Se ho appena aggiorno modello modificando il campo (ingresso data di nuovo), potrebbe essere modificare bene in futuro, perché data memorizzata come (data obj?):

mer 6 dic 2000 00:00:00 GMT + 1000 (Якутское время (зима))

Come posso convertire la mia data di ingresso, al comprensibile per il formato angolare?
Ho anche provato a sostituire il formato della data di input con 'new Date (input-date-here), ma non funziona. Può essere il formato della data di input non può essere analizzato solo dalla stringa?

Riepilogando: Ho bisogno di convertire il formato data di input in Data obj O ottenere tramite campi data pg.js come oggetti Date. Come posso fare qualcosa da questo?

risposta

4

Postgres sta memorizzando le date in formato ISO 8601, che Javascript Date possibile analizzare fuori dalla scatola, per esempio:

var x = new Date("2000-11-30T14:00:00.000Z"); 
console.log(x); 

risultati in Thu Nov 30 2000 06:00:00 GMT-0800 (PST) che è corretto per il mio fuso orario.

2

Ho trovato una risposta per me ... Ho provato a convertire la data di input in Data obj sul lato server e ho inviato json a un client. Sul client ho sempre ottenuto la mia data come stringa, ma non come oggetto Date. Quando eseguo una nuova data (inputDate) sul client, tutto va bene.