繁体   English   中英

moment.js日期将添加,但时间不添加

[英]moment.js date will add but time does not

我正在创建添加日期和时间的功能。 这些是变量:

    var a = moment().format("MM/DD/YY");
    var j = moment().format("hh:mm A");
    var b = moment(a).format("MM/DD/YY");
    var s = moment(j).format("hh:mm:ss");
    var y = moment({ h: 23, m: 59}).format('hh:mm A');

功能如下:

function myFunction() {
    var c = moment(b).add(1, 'day').format("MM/DD/YY");
    document.getElementById("demo2").innerHTML = "<p></p>"+ "X: " +c + "<br>" + y;
     b = c;
}
function myFunction1() {
    var c = moment(b).add(1, 'month').format("MM/DD/YY");
    document.getElementById("demo2").innerHTML ="<p></p>"+ "X: " +c + "<br>" + y;
     b = c;
}
function myFunction2() {
    var c = moment(b).add(1, 'year').format("MM/DD/YY");
    document.getElementById("demo2").innerHTML  ="<p></p>"+ "X: " +c + "<br>" + y;
     b = c;
}
function myFunction3() {
    var c = moment(a).format("MM/DD/YY")
    document.getElementById("demo2").innerHTML  = "<p></p>"+ "X: 00/00/00" + "<br>" + y;
     b = c;
}
function myFunction5() {

    var d = moment(y).add(1, 'hours').format("hh:mm A");
    document.getElementById("demo2").innerHTML  = "<p></p>"+ "X: "+ c + "<br>" + d;
    y = d;
}
function myFunction6() {
    var e = moment(y).add(1, 'min').format('hh:mm A');
    document.getElementById("demo2").innerHTML  = "<p></p>"+ "X: "+ c + "<br>" + e;
    y = e;
}

添加1天,1个月和1年的功能以及清除(myFunction3)均起作用。 时间功能没有。 我从晚上11:59开始,希望分别增加小时和分钟。 我知道我的代码很粗糙,我还在学习。 谢谢

检查http://momentjs.com/docs/#/manipulating/add/

您的小时数附加功能应该可以使用,但“分钟”应拼写为“分钟”或使用速记“ m”。

感谢您的建议。 我在第二个功能中固定了分钟,这就是我如何使其工作的方式。 这与时间格式有关。

var y1 = moment({ h: 23, m: 59});
var y = y1.format('hh:mm A');

然后函数是这样的:

function myFunction5() {
    var d1 = moment(y1).add(1, 'hours');
    var d = d1.format('hh:mm A');
    document.getElementById("demo2").innerHTML  = "<p></p>"+ "X: "+ b + "<br>" + d;
    y1 = d1;
}
function myFunction6() {
    var e1 = moment(y1).add(1, 'minutes');
    var e = e1.format('hh:mm A');
    document.getElementById("demo2").innerHTML  = "<p></p>"+ "X: "+ b + "<br>" + e;
    y1 = e1;
}

我敢肯定有更好的方法,但是它的工作原理是这样的。

您在代码中多次犯相同的错误:

var a = moment().format("MM/DD/YY");
var b = moment(a).format("MM/DD/YY");

a是一个字符串,因此当您将其传递到moment(a) ,您正在解析该字符串-这是不必要的。 这也容易出错,因为您没有将任何特定的输入格式作为第二参数传递给moment函数。 如果您检查日志,则可能会看到一堆弃用警告。

还不清楚您要达到的目的,因为两个字符串无论如何都具有相同的输出格式。 如果您想开始新的一天,那就是这样的:

var now = moment();
var a = now.format("...");
var b = now.clone().startOf('day').format("...");

(用您选择的格式替换...

换句话说-不要混淆stringmoment实例的使用,也不必在不需要时解析字符串。

您在所有功能中都犯了相同的错误。 另外,正如其他人指出的那样,请使用'minutes''m' ,而不要使用'min' 有关更多详细信息,请参见文档

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM