React Native中的连接日期和时间返回'无效日期'

时间:2017-07-21 00:53:18

标签: javascript datetime react-native momentjs

我的React-Native应用程序中有两个字段,一个用于日期,另一个用于时间。日期字段返回格式' YYYY-MM-DD'的值。并且时间字段返回格式值' hh:mm A' .I' m使用时刻进行格式转换。最终的API调用应使用格式' YYYY-MM-DDTHH:mm'的单个条目进行,以便连接我使用的日期和时间,

> mapM_ print $ eqElem 2 "c" [[3,1,2,4],[1,4,2,3],[1,3,4,2]] [["a","b","c","d"],["d","a","c","b"],["c","b","a","d"],["d","b","c","a"]]
([1,4,2,3],["d","b","c","a"])
([1,4,2,3],["d","a","c","b"])
([1,4,2,3],["a","b","c","d"])
([3,1,2,4],["d","b","c","a"])
([3,1,2,4],["d","a","c","b"])
([3,1,2,4],["a","b","c","d"])

它在Android和iOS的模拟器中运行良好,而且当我在设备上进行调试时,但是当我为两者进行构建时它都会开始返回

  

无效日期。

编辑:尝试moment(date+ " "+time).format("YYYY-MM-DDTHH:mm:ss") ,同时返回“无效日期”'在构建中。 还尝试使用moment(date + " " + value).format(); Date直接进行,而不提供任何格式,也会返回“无效日期”。在构建中。

1 个答案:

答案 0 :(得分:2)

您必须使用moment(String, String),因为您的输入既不是ISO 8601也不是RFC 2822格式。

正如moment(String)所述:

  

当从字符串创建片刻时,我们首先检查字符串是否与已知的ISO 8601格式匹配,然后检查字符串是否与RFC 2822日期时间格式匹配,然后在知道new Date(string)后退找不到格式。

     

为了解析除ISO 8601字符串以外的任何其他内容的一致结果,您应该使用String + Format。

在您的情况下,您可以使用:

moment(date+ " "+time, "YYYY-MM-DD hh:mm a").format("YYYY-MM-DDTHH:mm:ss")