我想将日期格式化为mm/dd/yyyy
。我尝试了以下方法,但都没起作用。有人能帮我吗?
参考:ui-date
<input ui-date ui-date-format="mm/dd/yyyy" ng-model="valueofdate" />
<input type="date" ng-model="valueofdate" />
我想将日期格式化为mm/dd/yyyy
。我尝试了以下方法,但都没起作用。有人能帮我吗?
参考:ui-date
<input ui-date ui-date-format="mm/dd/yyyy" ng-model="valueofdate" />
<input type="date" ng-model="valueofdate" />
Angular.js内置了日期过滤器。
// 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
您可以在日期过滤器的源代码中查看支持的日期格式。
编辑:
如果您正在尝试在日期选择器中获取正确的格式(不确定您是否正在使用日期选择器或仅尝试使用其格式化程序),这些支持的格式字符串在此处:https://api.jqueryui.com/datepicker/。如果您不需要输入字段,只是想以适当的格式显示字符串日期,则可以简单地使用以下方法:
<label ng-bind="formatDate(date) | date:'MM/dd/yyyy'"></label>
并在js文件中使用:
// @Function
// Description : Triggered while displaying expiry date
$scope.formatDate = function(date){
var dateOut = new Date(date);
return dateOut;
};
这将把字符串日期转换为JavaScript中的新日期对象,并以MM/dd/yyyy格式显示日期。
输出: 12/15/2014
编辑
如果您正在使用格式为“2014-12-19 20:00:00”的字符串日期(从PHP后端传递),则应修改代码为以下内容:https://dev59.com/GGXWa4cB1Zd3GeqPN4lL#27616348
进一步补充
从JavaScript中,您可以将代码设置为:
$scope.eqpCustFields[i].Value = $filter('date')(new Date(dateValue),'yyyy-MM-dd');
假设你已经有一个日期,否则你可以使用以下代码获取当前系统日期:
$scope.eqpCustFields[i].Value = $filter('date')(new Date(),'yyyy-MM-dd');
有关日期格式的更多细节,请参考:https://docs.angularjs.org/api/ng/filter/date
我正在使用这个,它运行良好。
{{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
这并不完全符合您的要求 - 但您可以尝试在HTML中创建一个日期输入字段,例如:
<input type="date" ng-model="myDate" />
然后,要将它打印到页面上,您可以使用:
<span ng-bind="convertToDate(myDate) | date:'medium'"></span>
最后,在我的控制器中,我声明了一个方法,从输入值创建一个日期(在 Chrome 中显然会解析为比实际日期晚一天):
最后,在我的控制器中,我声明了一个方法,从输入值创建一个日期(在 Chrome 中似乎会解析为比实际日期晚一天):
$scope.convertToDate = function (stringDate){
var dateOut = new Date(stringDate);
dateOut.setDate(dateOut.getDate() + 1);
return dateOut;
};
所以,你现在就有了。要看整个过程,请参见以下 plunker:http://plnkr.co/edit/8MVoXNaIDW59kQnfpaWW?p=preview。祝你好运!
我使用过滤器
.filter('toDate', function() {
return function(items) {
return new Date(items);
};
});
那么
{{'2018-05-06 09:04:13' | toDate | date:'dd/MM/yyyy hh:mm'}}
这将起作用:
{{ oD.OrderDate.replace('/Date(','').replace(')/','') | date:"MM/dd/yyyy" }}
注意:一旦替换这些内容,剩余的日期/毫秒将被转换为给定的格式。
查看 Angular date
API:AngularJS API:date
date
过滤器:使用方法:
{{ date_expression | date [: 'format'] [: 'timezone' ] }}
示例:
代码:
<span>{{ '1288323623006' | date:'MM/dd/yyyy' }}</span>
结果:
10/29/2010
只需从您的服务器端代码传递UTC日期格式到客户端,并使用以下语法 -
{{dateUTCField +'Z' | date : 'mm/dd/yyyy'}}
e.g. dateUTCField = '2018-01-09T10:02:32.273' then it display like 01/09/2018
在查看了上述所有解决方案后,以下是我最快的解决方案。如果您正在使用angular-material:
<md-datepicker ng-model="member.reg_date" md-placeholder="Enter date"></md-datepicker>
设置格式:
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');
};
});
编辑:您还需要设置parseDate以输入日期(来自此答案更改Angular Material中md-datepicker的格式)
$mdDateLocaleProvider.parseDate = function(dateString) {
var m = moment(dateString, 'DD/MM/YYYY', true);
return m.isValid() ? m.toDate() : new Date(NaN);
};
var app=angular.module('myApp',[]);
app.controller('myController',function($scope){
$scope.names = ['1288323623006','1388323623006'];
});
这里的控制器名称是“myController”,应用程序名称是“myApp”。
<div ng-app="myApp" ng-controller="myController">
<ul>
<li ng-repeat="x in names">
{{x | date:'mm-dd-yyyy'}}
</li>
</ul>
</div>
ui-date-format="mm/dd/yyyy"
吗?看起来,没有这个选项的默认行为正是你想要的。 - Lukas$formatters
和$parsers
,根据这个答案解决了我的类似问题。 - Ross Rogers