我有这个 JavaScript:
var data = '<Message>Fermata 1494 - Linea R2 -> 14:01 Linea 202 -> 14:06 </Message>';
var arr = data.match(/[\w\d]+\s*->\s*[\d:]+/g);
alert(arr);
for(var i=0; i < arr.length; i++) {
arr[i] = arr[i].replace('->', 'at');
arr[i] = arr[i]+'\n';
}
arr = arr.join('');
console.log(arr);
它获取格式化页面并打印以下信息:
R2 14:01
14:06 202
jsfiddle:JsFiddle
我需要打印
R2 于 14:01 - 以 x 分钟到达
格式...
所以我需要转换当前时间戳中字符串的“14:01”部分,然后进行减法,但似乎我无法做到这一点,在纯javascript中,没有jquery。
最佳答案
应该接近这个。有点棘手,因为我不知道它如何在午夜滚动。
function handleMessage(message) {
var now = new Date();
var list = message.match(/[\w\d]+\s*->\s*[\d:]+/g);
var result = list.map(function(entry) {
return handleEntry(entry, now);
}).join("\n");
alert(result);
}
function handleEntry(entry, now) {
var parts = entry.split(" -> ");
var line = parts[0];
var time = parts[1];
var minutesToGo = getMinutesToGo(time, now);
return ("Line " + line + " arrives in " + minutesToGo + " minutes");
}
function getMinutesToGo(time, now) {
var parts = time.split(":");
var timeMinutes = (parseInt(parts[0]) * 60) + parseInt(parts[1]);
var nowMinutes = (now.getHours() * 60) + now.getMinutes();
var oneDayMinutes = 24 * 60;
return (oneDayMinutes + timeMinutes - nowMinutes) % oneDayMinutes;
}
var message = '<Message>Fermata 1494 - Linea R2 -> 14:01 Linea 202 -> 14:06 </Message>';
handleMessage(message);
关于javascript - 转换字符串 (HH :mm) into date and print custom formatting (arrives in x minutes),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24120444/