Lui*_*era 7 firebase angularfire
我有一个带有日期字段(开始日期)的屏幕,用户可以在其中输入任何日期
<label class="item item-input">
<span class="input-label">Start Date</span>
<input type="date" ng-model="currentItem.OpenDate">
</label>
Run Code Online (Sandbox Code Playgroud)
我将以下内容添加到"保存"按钮的单击事件中
console.log("Normal date " + $scope.currentItem.OpenDate);
Run Code Online (Sandbox Code Playgroud)
控制台显示以下日期
Normal date Fri May 01 2015 00:00:00 GMT-0400 (Eastern Daylight Time)
Run Code Online (Sandbox Code Playgroud)
这是推送活动
$scope.data.accounts.push({ 'AccountName': $scope.currentItem.AccountName, 'StartBalance': $scope.currentItem.StartBalance, 'OpenDate': $scope.currentItem.OpenDate, 'AccountType': $scope.currentItem.AccountType });
Run Code Online (Sandbox Code Playgroud)
但是,日期$scope.currentItem.OpenDate未保存到Firebase,其余数据正在正常保存.我错过了什么?
Fra*_*len 24
遗憾的是,您没有包含初始化OpenDate属性的代码.但看起来您正在尝试将JavaScript Date对象编写到Firebase中.在火力地堡文档指定它支持这些类型:
对象,数组,字符串,数字,布尔值或
null
为了存储Date值,您必须将其转换为支持的类型.例如
$scope.data.accounts.push({
'AccountName': $scope.currentItem.AccountName,
'StartBalance': $scope.currentItem.StartBalance,
'OpenDate': $scope.currentItem.OpenDate.toString(),
'AccountType': $scope.currentItem.AccountType
});
Run Code Online (Sandbox Code Playgroud)
或者:
'OpenDate': $scope.currentItem.OpenDate.getTime(),
Run Code Online (Sandbox Code Playgroud)
art*_*art 15
我只是想抛弃一个可能更强大的解决方案,这对于那些关心时区的人来说可能是有用的.
我相信一个有效的解决方案是将您的日期存储为ISO-8601格式的字符串.如果您阅读链接的维基百科文章,您将看到"表示的词典顺序因此对应于时间顺序,除了涉及负数年的日期表示."
Firebase文档声明'字符串[...]按字典顺序按升序排序.,只要您处理积极的年份,您就可以在保持时区信息的同时进行高级时间搜索.
| 归档时间: |
|
| 查看次数: |
18454 次 |
| 最近记录: |