Date.gettime()不是函数,未定义

时间:2017-11-30 16:17:06

标签: ios date typescript datetime ionic-framework

它正在开发Android和浏览器以及在iOS上工作的WAS(离子视图和设备)。我在本地存储(import { Storage } from '@ionic/storage';)中保存日期,然后将其与另一个日期进行比较

这就是我的工作并且在任何地方工作但是 突然 ,而不是离子视图下的ios。最后一次测试最多在2周前进行,并按预期工作!

this.storage.get(filename).then((metadata_stored) => {
    if (metadata_stored && metadata_stored.date && metadata_stored.date.getTime() === filedate.getTime())
       //do something

我得到TypeError: metadata_stored.date.getTime() is not a function; metadata_stored.date.getTime is undefined

归档是通过类似filedate: Date = new date("2017-10-14T15:44:48+02:00")(据称是ISO)的东西创建的。然后它会保存在我的本地存储空间中:this.storage.set(filename, { /* ... */ , date: filedate })

如果我显示metadata_stored.data,我会得到类似2017-08-13T13:44:10.000Z

的内容

我不明白为什么它突然而且默默地停止工作。以及如何纠正它,因为metadate.date是归档的旧值,归档是new Date(...)!过去两周内,本节中没有更改任何代码。

编辑:我通过执行(new Date(metadata_stored.date)).getTime()解决了问题。但我仍然不知道为什么它无缘无故地停止工作 ......

1 个答案:

答案 0 :(得分:0)

在本地存储中,所有内容都存储为字符串。

这意味着应该使用(new Date(metadata_stored.date)).getTime()因为metadata_stored.datestring,而不是Date

let a = new Date();
let b = new Date();

// 2017-11-30T18:01:01457Z object
console.log(a, typeof a);
// 2017-11-30T18:01:01457Z object
console.log(b, typeof b);

localStorage.a = a;
localStorage.b = b;

a = localStorage.a;
b = localStorage.b;

// Thu Nov 30 18:01:01 GMT+0000 (GMT Standard Time) string
console.log(a, typeof a);
// Thu Nov 30 18:01:01 GMT+0000 (GMT Standard Time) string
console.log(b, typeof b);

a = new Date(localStorage.b);
b = new Date(localStorage.a);

// 2017-11-30T18:01:01457Z object
console.log(a, typeof a);
// 2017-11-30T18:01:01457Z object
console.log(b, typeof b);