moment.js和已弃用的警告。时间戳到时刻日期对象

时间:2016-03-20 08:10:52

标签: momentjs

我已经通过各种帖子阅读了类似的问题,但没有一个解决了我的问题。

我操作moment.js日期对象,然后将其存储为时间戳。

但是,当我再次尝试读取时间戳时,我得到了弃用的警告。

""弃用警告:时刻构造回落到js Date。这是不鼓励的,将在即将发布的主要版本中删除。有关详细信息,请参阅https://github.com/moment/moment/issues/1407。"

我尝试过Date(),format(),moment(myTimeStamp,' ddd,DD MMM YYYY HH:mm:ss ZZ'); - >都生成警告......

因此,例如,我的时间戳将如下所示:

const timestamp =' 1458586740000'

当我读回来并尝试解析月/日/年,然后是小时/分钟上午/下午等...我需要将时间戳记转换为moment.js对象。没有什么对我有用。任何想法。

如何将此时间戳:' 1458586740000'转换为moment.js对象,以便我可以根据需要从中提取日期?

编辑:这就是我存储时间戳的方式。所以我需要从中检索它。

let timeStamp = Moment(state[_Date])
                           .add({ hour: state[AMPM] === 'PM'
                                      ? +state[Hour] + 12
                                      : state[Hour] ,
                                  minute: state[Min] }).format('x')

1 个答案:

答案 0 :(得分:3)

X标记表示以秒为单位的unix时间戳,x标记表示unix毫秒时间戳(偏移量)。 您似乎有一个毫秒的时间戳,因此您可以通过执行以下操作来缩短时间:

$query_user = $db->prepare("SELECT COUNT FROM koniecinvite as pocet WHERE email=:email");
$query_user->bindParam(":email","$email")
$query_user->execute();

它没有'也可以:

var a = moment('1458586740000', 'x')

你也不能指定x,它应该有效:

var a = moment(1458586740000, 'x')

因为你有一个unix偏移量(毫秒),而不是unix时间戳(秒),所以moment.unix不是你想要的。

然后您可以执行以下操作:

moment(1458586740000)

或者您可以使用此处列出的任何其他格式化标记输出您想要的任何结果:http://momentjs.com/docs/#/displaying/format/

根据您提供的代码,我认为您可能遇到问题,因为您的时间戳存储为字符串(在''中)。解析为字符串会导致无效的日期错误,因为它尝试匹配ISO 8601格式并失败。指定'x'标记将使其假定unix偏移并正常工作。