我正在将一个变量绑定(bind)到时间类型的输入字段,但显示的格式是错误的。
它显示时间如下:08:54:30,088
我真正需要的是这样的格式:08:54
。
我尝试使用过滤器设置输入字段的值(value={{ datetime.date | date : 'HH:mm' }}
)但我的编辑说的是我的做法这是错误的。有什么想法吗?
这里是完整的代码:
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()
};
} );
最佳答案
我通过稍微定义 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 的 $filter 的想法,我找到了一个更短的方法!
$scope.datetime = {
date: new Date(),
time: new Date( $filter( 'date' )( new Date(), 'yyyy-MM-dd HH:mm' ) )
};
关于javascript - 绑定(bind)到 Date() 对象时如何格式化 input[time] 的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36976716/