Come formattare la data in angularjs

Voglio formattare la data come mm/dd/yyyy . Ho provato il seguente e nessuno di esso funziona per me. Qualcuno mi può aiutare con questo?

riferimento: ui-date

   

Angular.js ha un filtro data incorporato.

dimostrazione

 // in your controller: $scope.date = '20140313T00:00:00'; // in your view, date property, filtered with date filter and format 'MM/dd/yyyy' 

// produces 03/13/2014

È ansible visualizzare i formati di data supportati nell’origine per il filtro della data .

modifica :

Se stai cercando di ottenere il formato corretto in DatePicker (non chiaro se stai usando DatePicker o semplicemente provando a usare il formattatore), le stringhe di formato supportate sono qui: https://api.jqueryui.com/datepicker/

Se non si dispone di un campo di input, piuttosto si desidera semplicemente visualizzare una data della stringa con una formattazione corretta, è ansible scegliere semplicemente:

  

e nel file js usare:

  // @Function // Description : Triggered while displaying expiry date $scope.formatDate = function(date){ var dateOut = new Date(date); return dateOut; }; 

Questo convertirà la data in stringa in un nuovo object data in javascript e visualizzerà la data nel formato MM / gg / aaaa.

Produzione: 15/12/2014

modificare
Se si utilizza una stringa di formato data “2014-12-19 20:00:00” (passata da un backend PHP), è necessario modificare il codice in uno: https://stackoverflow.com/ un / 27616348/1904479

Aggiungendo oltre
Da javascript puoi impostare il codice come:

 $scope.eqpCustFields[i].Value = $filter('date')(new Date(dateValue),'yyyy-MM-dd'); 

nel caso tu abbia già una data con te, altrimenti puoi usare il seguente codice per ottenere la data attuale del sistema:

 $scope.eqpCustFields[i].Value = $filter('date')(new Date(),'yyyy-MM-dd'); 

Per maggiori dettagli sui formati delle date, consultare: https://docs.angularjs.org/api/ng/filter/date

Sto usando questo e sta funzionando bene.

 {{1288323623006 | date:'medium'}}: Oct 29, 2010 9:10:23 AM {{1288323623006 | date:'yyyy-MM-dd HH:mm:ss Z'}}: 2010-10-29 09:10:23 +0530 {{1288323623006 | date:'MM/dd/yyyy @ h:mma'}}: 10/29/2010 @ 9:10AM {{1288323623006 | date:"MM/dd/yyyy 'at' h:mma"}}: 10/29/2010 at 9:10AM 

Questo non è esattamente ciò che stai chiedendo – ma potresti provare a creare un campo di inserimento della data in html come:

  

Quindi per stampare questo nella pagina che useresti:

  

Infine, nel mio controller ho dichiarato un metodo che crea una data dal valore di input (che in chrome viene apparentemente analizzato 1 giorno di pausa):

 $scope.convertToDate = function (stringDate){ var dateOut = new Date(stringDate); dateOut.setDate(dateOut.getDate() + 1); return dateOut; }; 

Così il gioco è fatto. Per vedere tutto ciò che funziona vedi il seguente plunker: http://plnkr.co/edit/8MVoXNaIDW59kQnfpaWW?p=preview. Migliore fortuna!

Questo funzionerà:

 {{ oD.OrderDate.replace('/Date(','').replace(')/','') | date:"MM/dd/yyyy" }} 

NOTA: una volta sostituiti, la data rimanente / millis verrà convertita in foramt specificato.

vedi angular date api: AngularJS API: date


The Angular – filtro date :

Uso:

 {{ date_expression | date [: 'format'] [: 'timezone' ] }} 

exampe:

Codice:

  {{ '1288323623006' | date:'MM/dd/yyyy' }} 

Risultato:

 10/29/2010 

Basta passare il formato della data UTC dal codice lato server al lato client

e usare sotto la syntax –

  {{dateUTCField +'Z' | date : 'mm/dd/yyyy'}} eg dateUTCField = '2018-01-09T10:02:32.273' then it display like 01/09/2018 

Dopo aver esaminato tutte le soluzioni di cui sopra, la seguente è stata la soluzione più rapida per me. Se stai usando materiale angular:

   

Per impostare il formato:

 app.config(function($mdDateLocaleProvider) { $mdDateLocaleProvider.formatDate = function(date) { // Requires Moment.js OR enter your own formatting code here.... return moment(date).format('DD-MM-YYYY'); }; }); 

Modifica: è inoltre necessario impostare il parseDate per digitare una data (da questa risposta Modificare il formato di md-datepicker in Materiale angular )

 $mdDateLocaleProvider.parseDate = function(dateString) { var m = moment(dateString, 'DD/MM/YYYY', true); return m.isValid() ? m.toDate() : new Date(NaN); }; 

Ok il problema sembra provenire da questa linea:
https://github.com/angular-ui/ui-date/blob/master/src/date.js#L106 .

In realtà questa linea è l’associazione con l’interfaccia utente di jQuery che dovrebbe essere il luogo in cui inserire il formato dei dati.

Come puoi vedere in var opts non esiste dateFormat proprietà con il valore di ng-date-format come potresti immaginare.

Ad ogni modo la direttiva ha una costante chiamata uiDateConfig per aggiungere proprietà agli opts .

La soluzione flessibile (raccomandata):

Da qui puoi vedere che puoi inserire alcune opzioni iniettando nella direttiva una variabile controller con le opzioni ui jquery.

  myAppModule.controller('MyController', function($scope) { $scope.dateOptions = { dateFormat: "dd-M-yy" }; }); 

La soluzione hardcoded:

Se non si desidera ripetere questa procedura per tutto il tempo, modificare il valore di uiDateConfig in date.js in:

 .constant('uiDateConfig', { dateFormat: "dd-M-yy" }) 

Ho avuto lo stesso problema e come i commenti precedenti, ho pensato che ci fosse un metodo nativo in JavaScript. La cosa è new Date(valueofdate) restituisce un object Date.

Ma controlla http://www.w3schools.com/js/js_date_formats.asp , la parte che dice zero iniziale. Una data da una stringa, ad esempio un eco da PHP, deve essere come:

 $valueofdate = date('Yn-j',strtotime('theStringFromQuery')); 

Questo passerà una stringa, ad esempio: '1999-3-3' e JavaScript eseguirà l’analisi su un object con il giusto formato con

 $scope.valueofdate = new Date(valueofdate);   

Collegamento a PHP per i formati di data: http://www.w3schools.com/php/func_date_date_format.asp .

ng-bind="reviewData.dateValue.replace('/Date(','').replace(')/','') | date:'MM/dd/yyyy'"

Utilizzare questo dovrebbe funzionare bene. 🙂 I campi reviewData e dateValue possono essere modificati in base al resto del parametro e possono essere lasciati allo stesso modo

 var app=angular.module('myApp',[]); app.controller('myController',function($scope){ $scope.names = ['1288323623006','1388323623006']; }); 

Qui il nome del controller è “myController” e il nome dell’app è “myApp”.

 
  • {{x | date:'mm-dd-yyyy'}}

Il risultato sarà simile a questo: – * 10-29-2010 * 01-03-2013

 // $scope.dateField="value" in ctrl