【发布时间】:2020-04-12 11:50:25
【问题描述】:
我正在使用 ajax 从 api 调用中获取数据。它工作正常。我只是想知道如何格式化distance_time,使其更具可读性和用户友好性?我查看了文档,似乎找不到可以快速转换的内容。有什么建议吗?
$.ajax({
url: 'https://exampleapi.com/key=my_key',
dataType: 'json',
type: 'GET',
contentType:'json',
success: function(data)
{
//console.log( data)
//get distance in miles
var distance_miles = data['route']['distance'];
//$('.distance_miles').html(distance_miles);
//get formatted time
var distance_time = data['route']['formattedTime'];
$('.distance_time').html(distance_time);
}
});
以上代码输出:
"00:14:33";
这对程序员来说很好,但对用户来说并不违反直觉。
我想显示:
14 mins and 33 secs
如果有几个小时,它应该显示如下内容:
2 hours 14 mins and 45 secs
【问题讨论】:
-
好吧,如果必须,您可以将
"00:14:44"拆分为小时、分钟和秒,然后从那里开始...const [hours,minutes,seconds] = data['route']['formattedTime'].split(":"); -
到目前为止你尝试过什么?你被困在哪里了?
-
@kevinSpaceyIsKeyserSöze:我会更新我的答案
-
JSON 没有时间格式,也不是 JavaScript 日期格式。它只是一个字符串,包含小时、分钟和秒(在我看来,这对程序员来说也不是“合适的”,因为它需要被解析才能有用)。看来你只需要一些字符串操作。
-
为什么不让 API 返回最终格式化的时间字符串,而不是在 JS 中操作呢?大概后端服务将使用某种形式的日期/时间对象,您可以将其输出为人类可读的字符串,而不必在前端捏造一些东西。
标签: javascript jquery time-format