有沒有一種方法在角JS獲取時間戳從表單獲得的日期?AngularJs從人類可讀的日期獲取時間戳
<label for="start">From:</label>
<input type="date" ng-model="startDate" />
我需要在指令中編寫什麼來轉換這些數據?我沒有找到關於這個特定問題的任何信息, Regards
有沒有一種方法在角JS獲取時間戳從表單獲得的日期?AngularJs從人類可讀的日期獲取時間戳
<label for="start">From:</label>
<input type="date" ng-model="startDate" />
我需要在指令中編寫什麼來轉換這些數據?我沒有找到關於這個特定問題的任何信息, Regards
使用指令將視圖中的值更改爲模型。
http://jsfiddle.net/bateast/Q6py9/1/
angular.module('app', [])
.directive('stringToTimestamp', function() {
return {
require: 'ngModel',
link: function(scope, ele, attr, ngModel) {
// view to model
ngModel.$parsers.push(function(value) {
return Date.parse(value);
});
}
}
});
我將如何添加「模型查看」轉換? – ovi
使用ngModel。$ formatter,你可以在這裏查看文檔:https://docs.angularjs.org/api/ng/type/ngModel.NgModelController –
由於您使用輸入類型作爲日期,因此模型中的字符串應該與javascript中的Date
對象兼容。所以,你可以做
var timestamp = new Date($scope.startDate).getTime()
要在控制器使用,你可以做這樣的事情:
myApp.controller('TimestampCtrl', ['$scope', function($scope) {
$scope.toTimestamp = function(date) {
var dateSplitted = date.split('-'); // date must be in DD-MM-YYYY format
var formattedDate = dateSplitted[1]+'/'+dateSplitted[0]+'/'+dateSplitted[2];
return new Date(formattedDate).getTime();
};
}]);
而且可以這樣使用:
<div ng-controller="TimestampCtrl">
The timestamp of <input ng-model="date"> is {{ toTimestamp(date) }}
</div>
這不會在Safari工作。不要使用..它。 – lin
http://stackoverflow.com/questions/15718203/dealing-with-transformed-data-in-angularjs –