如何在javascript中将String转换为有效时间

时间:2017-09-20 15:28:55

标签: javascript angular

我在我的专业版中使用谷歌API,它返回此对象:

  

{" text":" 3小时29分钟","价值":12528}

我使用javascript,如何将文本转换为有效时间以便我可以使用?

2 个答案:

答案 0 :(得分:0)

定义有效时间?如果你经过了几个小时或几分钟 - 这一点应该有效。如果您需要更好的正则表达式,请提供更多生成数据的示例。

var myString = yourObject.Text;
var myRegexp = /(\d{1,2})\s[a-z]*\s(\d{1,2})\s[a-z]*/g
var match = myRegexp.exec(myString);
console.log(match[1] + ' ' + match[2]); 

如果不明显,则会解析字符串中的小时和分钟,然后将em存储在捕获数组中。然后,您可以使用该数组元素并根据需要形成另一个字符串,然后使用像MomentsJS这样的库将其传输到DateTime或将该时间添加到另一个或其他任何内容。

编辑:做了一个更好的正则表达式,我需要更多的例子,如果这不适合你的所有数据我假设的格式总是小时(0-24或0-12),单个数字写成2或02,然后是文本,然后是分钟(0-59),单个数字写成3或03。

答案 1 :(得分:-1)

您的对象似乎包含人类的价值和与秒相同的价值。要将秒转换为日期对象,只需:

var seconds = json_object['value'];
var date = new Date(seconds * 1000);

这只会将秒数转换为纪元时间。要将其转换为hh:mm:ss格式,最好的想法是使用某种时间管理库,例如Moment.js。但是,在这种特殊情况下,您可以尝试:

var formattedDate = date.toTimeString().split(' ')[0]