angularjs - new - obtener fecha actual angular 4
Cómo formatear la fecha en angularjs (13)
Angular.js tiene un filtro de fecha incorporado.
// in your controller:
$scope.date = ''20140313T00:00:00'';
// in your view, date property, filtered with date filter and format ''MM/dd/yyyy''
<p ng-bind="date | date:''MM/dd/yyyy''"></p>
// produces
03/13/2014
Puede ver los formatos de fecha admitidos en la fuente del filtro de fecha .
editar :
Si está tratando de obtener el formato correcto en el selector de fechas (no está claro si está usando datepicker o simplemente está tratando de usar su formateador), las cadenas de formato compatibles están aquí: https://api.jqueryui.com/datepicker/
Quiero formatear la fecha como mm/dd/yyyy
. Intenté lo siguiente y nada de eso me funciona. Puede alguien ayudarme con esto?
referencia: ui-date
<input ui-date ui-date-format="mm/dd/yyyy" ng-model="valueofdate" />
<input type="date" ng-model="valueofdate" />
Después de ver todas las soluciones anteriores, la siguiente fue la solución más rápida para mí. Si está utilizando material angular:
<md-datepicker ng-model="member.reg_date" md-placeholder="Enter date"></md-datepicker>
Para establecer el 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'');
};
});
Editar: también necesita establecer el parseDate para escribir una fecha (de esta respuesta Cambiar el formato de md-datepicker en Angular Material )
$mdDateLocaleProvider.parseDate = function(dateString) {
var m = moment(dateString, ''DD/MM/YYYY'', true);
return m.isValid() ? m.toDate() : new Date(NaN);
};
Esto funcionará:
{{ oD.OrderDate.replace(''/Date('','''').replace('')/'','''') | date:"MM/dd/yyyy" }}
NOTA: una vez que reemplace estos, la fecha / millis restante se convertirá en formato dado.
Esto no es exactamente lo que estás pidiendo, pero podrías intentar crear un campo de entrada de fecha en html algo así como:
<input type="date" ng-model="myDate" />
Luego, imprima esto en la página que usaría:
<span ng-bind="convertToDate(myDate) | date:''medium''"></span>
Finalmente, en mi controlador, declaré un método que crea una fecha a partir del valor de entrada (que en chrome aparentemente se analiza un día):
$scope.convertToDate = function (stringDate){
var dateOut = new Date(stringDate);
dateOut.setDate(dateOut.getDate() + 1);
return dateOut;
};
Entonces ahí lo tienes. Para ver todo funcionando, consulta el siguiente plunker: http://plnkr.co/edit/8MVoXNaIDW59kQnfpaWW?p=preview . ¡Mucha suerte!
Estoy usando esto y está funcionando bien.
{{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
Ok, el problema parece venir de esta línea:
https://github.com/angular-ui/ui-date/blob/master/src/date.js#L106 .
En realidad, esta línea es el enlace con jQuery UI, que debería ser el lugar para inyectar el formato de datos.
Como puede ver en var opts
no existe una propiedad dateFormat
con el valor de ng-date-format como podría espect.
De todos modos, la directiva tiene una constante llamada uiDateConfig
para agregar propiedades a opts
.
La solución flexible (recomendada):
Desde here puede ver que puede insertar algunas opciones para inyectar en la directiva una variable de controlador con las opciones de jquery ui.
<input ui-date="dateOptions" ui-date-format="mm/dd/yyyy" ng-model="valueofdate" />
myAppModule.controller(''MyController'', function($scope) {
$scope.dateOptions = {
dateFormat: "dd-M-yy"
};
});
La solución codificada:
Si no desea repetir este procedimiento, cambie todo el tiempo el valor de uiDateConfig
en date.js a:
.constant(''uiDateConfig'', { dateFormat: "dd-M-yy" })
Si no tiene un campo de entrada, solo desea mostrar una fecha de cadena con un formato adecuado, puede simplemente hacer lo siguiente:
<label ng-bind="formatDate(date) | date:''MM/dd/yyyy''"></label>
y en el archivo js use:
// @Function
// Description : Triggered while displaying expiry date
$scope.formatDate = function(date){
var dateOut = new Date(date);
return dateOut;
};
Esto convertirá la fecha en cadena en un nuevo objeto de fecha en javascript y mostrará la fecha en formato MM / dd / aaaa.
Salida: 15/12/2014
Editar
Si está utilizando una fecha de cadena de formato de cadena "2014-12-19 20:00:00" (pasada desde un backend de PHP), entonces debe modificar el código al de: https://.com/a/27616348/1904479
Añadiendo más
Desde javascript puede establecer el código como:
$scope.eqpCustFields[i].Value = $filter(''date'')(new Date(dateValue),''yyyy-MM-dd'');
es decir, si ya tiene una cita, de lo contrario puede usar el siguiente código para obtener la fecha actual del sistema:
$scope.eqpCustFields[i].Value = $filter(''date'')(new Date(),''yyyy-MM-dd'');
Para obtener más información sobre los formatos de fecha, consulte: docs.angularjs.org/api/ng/filter/date
Simplemente pase el formato de fecha UTC desde el código del lado del servidor al lado del cliente
y usa la sintaxis debajo -
{{dateUTCField +''Z'' | date : ''mm/dd/yyyy''}}
e.g. dateUTCField = ''2018-01-09T10:02:32.273'' then it display like 01/09/2018
Tuve el mismo problema y los comentarios anteriores, pensé que debe haber un método nativo en JavaScript. La cosa es new Date(valueofdate)
devuelve un objeto Fecha.
Pero, consulte http://www.w3schools.com/js/js_date_formats.asp , la parte que dice cero inicial. Una fecha de un String, por ejemplo un eco de PHP, debe ser como:
$valueofdate = date(''Y-n-j'',strtotime(''theStringFromQuery''));
Esto pasará una cadena, por ejemplo: ''1999-3-3''
y JavaScript hará el análisis a un objeto con el formato correcto con
$scope.valueofdate = new Date(valueofdate);
<input ui-date ui-date-format="mm/dd/yyyy" ng-model="valueofdate" />
<input type="date" ng-model="valueofdate" />
Enlace a PHP para formatos de fecha: http://www.w3schools.com/php/func_date_date_format.asp .
ver date
angular api: docs.angularjs.org/api/ng/filter/date
date
angular: Uso:
{{ date_expression | date [: ''format''] [: ''timezone'' ] }}
Exampe:
Código:
<span>{{ ''1288323623006'' | date:''MM/dd/yyyy'' }}</span>
Resultado:
10/29/2010
ng-bind="reviewData.dateValue.replace(''/Date('','''').replace('')/'','''') | date:''MM/dd/yyyy''"
Use esto debería funcionar bien. :) Los campos reviewData y dateValue pueden ser cambios según el parámetro que el resto se puede dejar igual
// $scope.dateField="value" in ctrl
<div ng-bind="dateField | date:''MM/dd/yyyy''"></div>
var app=angular.module(''myApp'',[]);
app.controller(''myController'',function($scope){
$scope.names = [''1288323623006'',''1388323623006''];
});
Aquí el nombre del controlador es "myController" y el nombre de la aplicación es "myApp".
<div ng-app="myApp" ng-controller="myController">
<ul>
<li ng-repeat="x in names">
{{x | date:''mm-dd-yyyy''}}
</li>
</ul>
</div>
El resultado será el siguiente: - * 10-29-2010 * 01-03-2013