如何解析以下日期结构:HHMM/DD?

How do I parse the Following Date Structure: HHMM/DD?

我有两个约会对象:

(小时:Minute/Day)

均为字符串格式。

示例 1:

主要日期:“00:10/01”(01.03.2020 - 数据可用)

次日期:“23:45/29”(29.02.2020 - 不可用(应计算))

var mainDate = moment("01.03.2020 00:10");
var secondaryDate = "23:45/29";

输出应为:29.02.2020 - 23:45

我掌握的信息

主日期:01.03.2020 [日期对象/字符串](日、月、年、时分)
辅助日期:“23:45/29”[String](时、分、日)

预期输出

它应该计算相对于主要日期的完整日期

29.02.2020

现实生活中的例子 1

预定出发时间:23:45/01(我的系统知道/01是01.01.2020)

实际出发时间:00:50/02(我的系统不知道日期)

输出应该是飞机起飞时间(时间戳)是 02.01.2020 - 00:50

现实生活中的例子 2

预定出发时间:00:45/01(我的系统知道/01是01.01.2020)

实际出发时间:23:50/31(我的系统不知道日期)

输出应该是飞机起飞时间(时间戳)是 31.12.2019 - 23:50

计算这个的函数是什么?

如果得到次要数据的日期部分,可以和主日期的日期部分进行比较。如果前者先于后者生效,你知道在创建完整的次要日期时要减去一个月。

function getSecondaryDate(mainDate, secondaryInfo) {
    var baseDate = moment(mainDate, "DD.MM.YYYY HH:mm");

    var secParts = secondaryInfo.split("/");
    if (secParts.length != 2) {
        // something is wrong
        alert("Wrong number of parts for secondary date.");
    }
    
    var secDayOfMonth = parseInt(secParts[1]);
    if (isNaN(secDayOfMonth)) {
        // something went wrong
        alert("Could not parse date part of secondary date '" + secDayOfMonth + "'");
    }
    
    var monthInc = 0;
    if (secDayOfMonth > baseDate.date() + 15) {
        monthInc = -1;
    } else if (secDayOfMonth < baseDate.date() - 15) {
        monthInc = 1
    }
    
    var secondaryDate = moment().year(baseDate.year()).month(baseDate.month()).add(monthInc, "month").date(secDayOfMonth);
    if (!secondaryDate.isValid()) {
        // something went wrong
        alert("Failed to construct secondary date.");
    }

    return secondaryDate;
}

document.addEventListener('DOMContentLoaded', (event) => {
    var mainDate = "01.03.2020 00:10";
    var secondary = "23:45/29";
    
    document.getElementById("result").innerHTML = getSecondaryDate(mainDate, secondary).format("YYYY-MM-DD") + "<br>" +
                            getSecondaryDate("01.01.2020 00:10", "23:50/31").format("YYYY-MM-DD");
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment.min.js"></script>
<body>
<p id="result"></p>
</body>

我相信您也可以从 var secTime = secParts[0].split(":"); 中看到如何添加时间。