将日期字段保存到 Parse:键的类型无效,预期日期,但得到字符串
Posted
技术标签:
【中文标题】将日期字段保存到 Parse:键的类型无效,预期日期,但得到字符串【英文标题】:Save a date field to Parse : invalid type for key, expected date, but got string 【发布时间】:2014-07-19 16:02:23 【问题描述】:我有一个非常奇怪的问题,因为几周前,一切都运行良好。 但是现在,我无法保存包含日期的对象。
我使用 Parse.com 后端。 我有一个非常简单的类,只有一个字段 Date。
我做了一个非常简单的查询:
var Day = Parse.Object.extend('Day');
var d = new Day();
var now = new Date();
d.set('dateField', now);
d.save();
我得到一个错误:
关键日期字段的类型无效,预期日期,但得到字符串
如果我尝试这样做:
d.set('dateField', __type:"Date", iso:now.toISOString()
我也遇到了同样的问题……
我希望有人可以帮助我,因为,我不知道......
谢谢!
【问题讨论】:
在 javascript 中使用d.set('dateField', now)
是正确的方法,如果第一个代码块失败,那么您应该提交错误报告,因为这对我来说效果很好。我会再次尝试这个简单的查询,如文件中所示,除了附加的最低限度的脚本之外什么都没有。
我之前的例子正是我尝试过的,但它不起作用。我没有 Cloud Code,我通过脚本和浏览器控制台进行了尝试。这很奇怪,因为其他字段都可以。
我建议在parse.com/help提交错误报告
我要举报
如果您最终在这里寻找在Parse.Query
中使用momentjs
日期进行比较的正确方法,请将日期传递为myDate.toDate()
(例如var today = moment().startOf('day'); query.greaterThanOrEqualTo('updatedAt', today.toDate());
)
【参考方案1】:
不知道你在那里做错了什么,但这个 sn-p 对我来说是正确的。它经过测试并正常工作。
快速仔细检查您可以进行哪些 - CLASS 的 COLUMN NAME、CLASS 的名称、COlUMN 的 DATATYPE、SCRIPT TAG 中的 JS SDK 版本
<script type="text/javascript" src="http://www.parsecdn.com/js/parse-1.3.2.min.js"></script>
<script type="text/javascript">
Parse.initialize("APPID", "JS KEY");
var TestObject = Parse.Object.extend("CLASSNAME");
var currentDate = new Date();
var testObject = new TestObject();
testObject.set('datefield', currentDate);
testObject.save(null,
success: function(object)
$(".success").show();
,
error: function(model, error)
console.log('error - ', error);
$(".error").show();
);
</script>
【讨论】:
以上是关于将日期字段保存到 Parse:键的类型无效,预期日期,但得到字符串的主要内容,如果未能解决你的问题,请参考以下文章
CloudKit,无法将 NSDate 保存到日期/时间字段,“无效日期”