2015-07-10 2 views
0

Я создаю функции для добавления даты и времени увеличения. Это переменные:date.js добавит дату, но время не

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) все работы. Функции времени нет. Я начинаю с 23:59 и хочу увеличить часы и минуты отдельно. Я знаю, что мой код груб, я все еще учился. Благодаря

+1

Я думаю, проблема может заключаться в том, что переменная 'c' не определена в' myFunction5' и 'myFunction6'. Вам нужно либо объявить его внутри области действия, либо глобальными переменными. – TW80000

ответ

1

Проверить http://momentjs.com/docs/#/manipulating/add/

Ваших часы Функция добавления должна работать, но «» мин должна быть прописана как «минута» или используя сокращенную «т».

0

Спасибо за предложения. Я исправил минуты во второй функции, и вот как я заработал. Это как-то связано с форматированием времени.

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; 
} 

Я уверен, что есть лучший способ, но он работает, как это.

0

Вы делаете ту же ошибку несколько раз в вашем коде:

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("..."); 

(замена ... с форматом вашего выбора)

Другими словами - не перепутать использование аргумента string и moment, и не разбирайте строки, когда вам это не нужно.

Вы делаете ту же ошибку во всех своих функциях. Кроме того, как указывали другие, используйте либо 'minutes', либо 'm', но не 'min'. См. the documentation для более подробной информации.

Смежные вопросы