Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在javascript中将文本时间值转换为有效的日期格式_Javascript_Angularjs_Momentjs_Simpledateformat - Fatal编程技术网

在javascript中将文本时间值转换为有效的日期格式

在javascript中将文本时间值转换为有效的日期格式,javascript,angularjs,momentjs,simpledateformat,Javascript,Angularjs,Momentjs,Simpledateformat,完成了几个样本测试: var data = { "duration": { "value": 74384, "text": "20 hours 40 mins" //convert this to a valid time date format }, "distance": { "value": 2137146, "text": "1,328 mi" }, } 参考资料:请尝试使用此代

完成了几个样本测试:

var data = {
    "duration": {
        "value": 74384,
        "text": "20 hours 40 mins" //convert this to a valid time date format
      },
      "distance": {
        "value": 2137146,
        "text": "1,328 mi"
      },
}

参考资料:

请尝试使用此代码进行时间转换

var date = new Date(Date.parse(data.duration.text));
var date = moment(new Date(data.duration.text));

根据,duration属性有两个属性:
文本

value属性以
秒为单位返回时间。您可以添加当前时间

var数据={
“期限”:{
“值”:74384,//以秒为单位
“文本”:“20小时40分钟”
},
“距离”:{
“价值”:2137146,
“文本”:“1328英里”
},
};
var秒=data.duration.value//从价值
var finalDateInMilisons=新日期().getTime()+(秒*1000);
日志(新日期(finalDateInMilisons))
var数据={
“期限”:{
“价值”:74384,
“文本”:“20小时40分钟”//将其转换为有效的时间-日期格式
},
“距离”:{
“价值”:2137146,
“文本”:“1328英里”
},
};
让日期=新日期();
日期=新日期(date.getFullYear(),date.getMonth(),date.getDate());
让whatYouWant=newdate(+Date+data.duration.value*1000);
document.getElementById('time').innerText=whatYouWant

您认为这到底能起什么作用?Javascript日期是自1970年1月1日起的时间(以毫秒为单位),如果要从
20小时40分钟
创建新日期,则时间将为
1.1.1970。20小时40分钟
…不要再给出相同的答案…尽管要改进其他人的答案。
function secondsToHms(d) {
    d = Number(d);
    var h = Math.floor(d / 3600);
    var m = Math.floor(d % 3600 / 60);
    var s = Math.floor(d % 3600 % 60);

    var hDisplay = h > 0 ? h + (h == 1 ? " hour, " : " hours, ") : "";
    var mDisplay = m > 0 ? m + (m == 1 ? " minute, " : " minutes, ") : "";
    var sDisplay = s > 0 ? s + (s == 1 ? " second" : " seconds") : "";
    return hDisplay + mDisplay + sDisplay; 
}