2015-10-19 106 views
2

JS:如何更改输入日期格式?

$scope.getDate = new Date();

HTML:

<div class="col-sm-4"> 
    <input type="date" ng-model="getDate" class="form-control input-sm"> 
</div> 

结果:10/19/2015(在Chrome)

它很容易,不使用NG-模型。 {{getDate | date:'yyyy-MM-dd'}}。但我需要ng-model中的'yyyy-MM-dd'格式,而不是使用日期过滤器。我怎么解决这个问题?

+0

http://stackoverflow.com/questions/22392328/how-to-format-date-in-angularjs –

回答

1

你可以尝试这样的方式:

Date.prototype.myformat = function() { 
     var yyyy = this.getFullYear().toString(); 
     var mm = (this.getMonth()+1).toString(); // getMonth() is zero-based 
     var dd = this.getDate().toString(); 
     return yyyy + "-" + (mm[1]?mm:"0"+mm[0]) + "-" + (dd[1]?dd:"0"+dd[0]); // padding 
     }; 
var dd = new Date(); 
$scope.getDate = dd.myformat; 

结果:2015年10月19日

+0

谢谢大家配合,谢谢!我用角度用户界面解决了问题:D –

+0

无需调用* toString *,特别是在评估过程中,月份和日期表达式将参数再次转换为数字。那么'mm [1]?mm:“0”+ mm [0]'可以是'mm> 9?mm:“0”+ mm',同一天。或'('0'+ mm).slice(-2)'。 – RobG

0

JS:$scope.open = function($event) { $scope.status.opened = true; }; $scope.dateOptions = { formatYear: 'yy', startingDay: 1 }; $scope.format = 'yyyy-MM-dd'; var app = angular.module('someApp',['ui.bootstrap']); //app.js

HTML:<input type="text" class="form-control sm" ng-click="open($event)" datepicker-mode="month" datepicker-popup="{{format}}" ng-model="getDate" is-open="status.opened" datepicker-options="dateOptions" ng-required="true" current-text="Today" clear-text="Clear" close-text="Close"/>

result

感谢您的意见家伙! ^^

0

使用ng-bind将模型绑定到其他具有或不具有过滤器的HTML元素。

<p ng-bind=" getDate | date:'yyyy-MM-dd'"></p>