我正在从网址抓取JSON数据。时间是军事时间,我想知道一旦我在客户端检索将其转换为标准时间是否有办法。
这是JSON:
[
{
SaturdayClose: "21:00",
SaturdayOpen: "10:00",
SundayClose: "12:00",
SundayOpen: "18:00",
WeekdayClose: "21:00",
WeekdayOpen: "10:00"
}
]
这是我的index.html:
<p>
Sun: ${ SundayOpen }a - ${ SundayClose }p Mon - Sat: ${ SaturdayOpen }a ${ SaturdayClose }p
</p>
这会返回这种丑陋:
太阳:18:00a - 12:00p周一至周六:10:00a 21:00p
我宁愿回复:
太阳:6:00a - 12:周一至周六:10:00a - 9:00p
答案 0 :(得分:4)
使用日期脚本当然会起作用。如果你只需要从24 hour clock转换为12小时,你可以简单地减去时间并按照指示添加时间段。
修改强>
我添加了两次作为测试,00:30
,12:30 am
和12:15
,应该是12:15 pm
。请参阅下面的新编辑。
var times = {
SaturdayClose: "21:00",
SaturdayOpen: "10:00",
SundayClose: "12:00",
SundayOpen: "18:00",
WeekdayOpen: "10:00",
WeekdayClose: "21:00",
WeekendOpen: "12:15",
WeekendClose: "00:30"
};
console.log(times);
for (var time in times) {
var parts = times[time].split(':'),
hour = parts[0],
minutes = parts[1];
if (hour > 12) {
times[time] = (hour - 12) + ':' + minutes + ' pm';
} else if (hour == 0) {
times[time] = 12 + ':' + minutes + ' am';
} else if (hour == 12) {
times[time] += ' pm';
} else {
times[time] += ' am';
}
}
console.log(times);
转换后会给您以下内容:
SaturdayClose "9:00 pm"
SaturdayOpen "10:00 am"
SundayClose "12:00 pm"
SundayOpen "6:00 pm"
WeekdayClose "9:00 pm"
WeekdayOpen "10:00 am"
WeekendClose "12:30 am"
WeekendOpen "12:15 pm"
答案 1 :(得分:3)
如果你想使用html而不是json,你可以这样做。
dateEl.innerHTML=dateEl.innerHTML.replace(/(\d\d)(:\d\d[ap])/g,function(m,hour,suffix) {
return (+hour+11)%12+1+suffix;
});
请注意,这假设您已将dateEl设置为适当的元素,并且该元素不包含您不想转换的其他时间。
答案 2 :(得分:1)
看一下date.js。它充满了方便的日期转换功能。
答案 3 :(得分:1)
window.onload=function() {
var re=/(\d{2}:\d{2}[ap])/gi
var times = document.getElementById('times').innerHTML;
var mil = times.match(re);
for (var i=0;i<mil.length;i++) {
var parts = mil[i].split(":");
var hours = parseInt(parts[0],10);
if (hours > 12) parts[0]=hours-=12;
else if (hours==0) parts[0]=12
times=times.replace(mil[i],parts.join(":"))
}
document.getElementById('times').innerHTML = times;
}
答案 4 :(得分:0)
“军事时间”(也称为24小时制)可通过简单的模数12轻松转换为12小时。
var obj = {
SaturdayClose: "21:00",
SaturdayOpen: "10:00",
SundayClose: "12:00",
SundayOpen: "18:00",
WeekdayClose: "21:00",
WeekdayOpen: "10:00"
}, prop, $output = $('#output'), time, x, meridiem;
for (prop in obj) {
if (obj.hasOwnProperty(prop)) {
x =+obj[prop].substr(0, 2);
if (x > 12) {
x = x % 12;
meridiem = "pm";
} else {
meridiem = "am";
}
time = x + ":00" + meridiem;
$output.append("<li>" + prop + " " + time + "</li>");
}
}