绑定到Date() - 对象时如何格式化input [time]的值

时间:2016-05-02 07:02:29

标签: javascript angularjs

我将变量绑定到time类型的输入字段,但显示的格式错误。

它会显示如下时间:08:54:30,088 我真正需要的是这样的格式:08:54

我尝试使用过滤器(value={{ datetime.date | date : 'HH:mm' }})设置输入字段的值,但我的编辑说我这样做的方式是错误的。有什么想法吗?

这里是compltete代码:

HTML

 <input id="rep_time" class="form-control" type="time" ng-model="datetime.time" value={{ datetime.date | date : 'HH:mm' }}>

JS

 app.controller( 'newCtrl', function( $scope ) {  

     $scope.datetime = {
         date: new Date(),
         time: new Date()
       };
 } );

4 个答案:

答案 0 :(得分:2)

我通过定义Date() - 对象来规避问题。它有效,但我不喜欢这种双重定义。

HTML

 <input class="form-control" type="date" ng-model="datetime.date" placeholder="yyyy-MM-dd" min="2016-01-01" required />

 <input class="form-control" type="time" ng-model="datetime.time">

JS

$scope.datetime = {
        date: new Date(),
        time: ''
    };

$scope.datetime.time = new Date(
            $scope.datetime.date.getFullYear(),
            $scope.datetime.date.getMonth() + 1,
            $scope.datetime.date.getDate(),
            $scope.datetime.date.getHours(),
            $scope.datetime.date.getMinutes() );

更新js

想要使用来自 Jimbrooism 的$过滤器,我找到了一个更短的方法!

$scope.datetime = {
     date: new Date(),
     time: new Date( $filter( 'date' )( new Date(), 'yyyy-MM-dd HH:mm' ) )
   };

答案 1 :(得分:1)

请看看这个

&#13;
&#13;
var app = angular.module("mainApp",  []);

app.controller('mainCtrl', function($scope, $filter){
  $scope.datetime = {
         date: new Date(),
         time: $filter('date')( new Date(), 'HH:mm')
       };

});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.22/angular.min.js"></script>
<div ng-app="mainApp" ng-controller="mainCtrl">
  <input id="rep_time" class="form-control" type="time" ng-model="datetime.time" >
</div>
&#13;
&#13;
&#13;

答案 2 :(得分:1)

试试这个:

if (!!Session.get(key)) {
   ...
}

答案 3 :(得分:0)

您是否需要将模型绑定到输入元素? 将过滤器应用于输入字段通常会生成警告或错误,因为过滤器是单向的,将现有值绑定到输入然后更改它们是双向绑定。

如果您不需要能够更改元素,请考虑将输入更改为其他内容,例如

<div ng-bind="datetime.date | date : 'HH:mm'"></div>

如果你必须使用输入,Jimbroosim的答案就可以了。