我是 AngularJS 的新手,正在为一个看似简单的问题而苦苦挣扎。通过 ng-model 输入到 ng-controller 的日期值在 IE (v8/9/10) 和 Chrome 之间读取不同(见下文)。这种不一致使得很难编写代码来处理服务器端的日期 (Python)。
我怎样才能使它保持一致? (最好是 IE 格式,因为“GMT-0700(太平洋夏令时)”不容易在服务器上解析为日期时间。提前致谢。
HTML:
<div id="td_date" ><datepicker type="text" id="newdate" ng-model="data.date" name="date" bs-datepicker ></div>
Selected date: {{data.date}} -----> **This prints 2014-09-21T07:10:45.117Z in both browsers**
JS:
function ($scope, $log, data) {
$log.info('date ='+ data.date); ----> **This prints 'Sat Sep 21 00:10:45 PDT 2014' in IE
but 'Sun Sep 21 2014 00:10:45 GMT-0700 (Pacific Daylight Time)' in Chrome**
};
最佳答案
当您提交表单时,检查输入并检查日期对象并将日期格式化为您喜欢的格式:) 这样您就可以在后端以准确的格式获取日期
if($scope.data.date instanceof Date) {
$scope.data.date = $filter('date')($scope.data.date , "yyyy-MM-dd"); // filter to a format u like
}
如果您的表单位于 data
对象中,例如 data.date
,'data.userName'...
您可以按如下方式使用它 提交表单时,
for (key in $scope.data) {
$scope.data[key] instanceof Date) {
$scope.data[key] = $filter('date')($scope.data[key], "yyyy-MM-dd"); // filter to a format u like
}
}
这是 angularjs 中日期过滤器的 API https://docs.angularjs.org/api/ng/filter/date
关于javascript - ng-model 传递的 Javascript 日期格式问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25956863/