2016-12-05 211 views
2

在AngularJS 1.5我有一个形式的输入字段类型为“时间”。它可以工作,但显示的时间应该是HH:毫米 - 没有秒等。格式输入字段“时间”不显示秒和毫秒

Chrome默认会这样做,但Firefox和Internet Explorer会显示秒和毫秒(例如“14:56:00.000”而不是“ 14:56" )。

如何在所有浏览器中显示所需的时间格式?

<html lang="en"> 
 
<head> 
 
    <meta charset="UTF-8"> 
 
    <title>Example - example-time-input-directive-production</title> 
 
    
 
    <script src="//code.angularjs.org/snapshot/angular.min.js"></script> 
 
    
 
</head> 
 
<body ng-app="timeExample"> 
 
    <script> 
 
angular.module('timeExample', []) 
 
    .controller('DateController', ['$scope', function($scope) { 
 
    $scope.example = { 
 
     value: new Date(1970, 0, 1, 14, 56) 
 
    }; 
 
    }]); 
 
</script> 
 
<form name="myForm" ng-controller="DateController as dateCtrl"> 
 
    <label for="exampleInput">Pick a time between 8am and 5pm:</label> 
 
    <input type="time" id="exampleInput" name="input" ng-model="example.value" 
 
     placeholder="HH:mm" min="08:00" max="17:00" required /> 
 
    <div role="alert"> 
 
    <span class="error" ng-show="myForm.input.$error.required"> 
 
     Required!</span> 
 
    <span class="error" ng-show="myForm.input.$error.time"> 
 
     Not a valid date!</span> 
 
    </div> 
 
    <tt>value = {{example.value | date: "HH:mm:ss"}}</tt><br/> 
 
    <tt>myForm.input.$valid = {{myForm.input.$valid}}</tt><br/> 
 
    <tt>myForm.input.$error = {{myForm.input.$error}}</tt><br/> 
 
    <tt>myForm.$valid = {{myForm.$valid}}</tt><br/> 
 
    <tt>myForm.$error.required = {{!!myForm.$error.required}}</tt><br/> 
 
</form> 
 
</body> 
 
</html>

谢谢!

+0

你说得对。但我的意思是输入字段中的日期格式,而不是文本字段中的日期格式。我为我的误会道歉。 – user2145393

+0

添加了一些可能有用的链接 –

回答

2

Firefox和IE不支持<input type="time">,它取决于浏览器。有关W3的更多信息,请参阅this链接。因此,您的输入字段将无法以与Chrome中相同的方式显示。

另一种方法是从angular-ui使用uib-timepicker或从jquery尝试一个,如webshim