将日期字段保存到 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 保存到日期/时间字段,“无效日期”

Parse-Server可防止自动添加字段

Laravel的Buefy datepicker:预期日期,得到了String

在 Parse 后端保存日期和时间

JS中的引用类型

JS中的引用类型