javascript - 转换字符串 (HH :mm) into date and print custom formatting (arrives in x minutes)

标签 javascript regex date time substring

我有这个 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/

相关文章:

JavaScript 忽略 true 和 false

javascript - javascript 如何获取子字符串

regex - 如何使用正则表达式匹配字符串中的第 n 次出现

regex - grep命令linux正则表达式

mysql - 即使count=0 mysql也选择

javascript - 为什么有两种不同的方法 slice() 和 substring()?

java - App Engine Search Api 是否允许部分匹配和拼写错误匹配

PHP - 以秒为单位获取两个日期时间之间的差异

sql - 两个日期之间的天数 - ANSI SQL

javascript - 等待隐藏 div 直到它加载