将字符串转换为时间并添加一些分钟

时间:2017-05-03 12:09:20

标签: javascript

我有一个表格和一个按钮加上一些时间(hh:MM),但时间是一个span标签。

在Firefox上运行良好,但是当我在Chrome上测试时,无法使用Date()。发生了什么事?

//Botão adicionar horário agenda.
$('.button').click(function() {
  var $duration_schedule = $('#duration');
  var duration = $duration_schedule.val(); // 30
  var hour = $('.time_schedule_form').text(); // 10:00
  var new_time = self.Plus_minutes(hour, duration);
  alert(new_time); // 10:30
});


Plus_minutes: function(hour, duration) {
    var time, new_hour, hours = '';
    time     = new Date("T"+hour); // Erro at Chrome
    time.setTime(time.getTime() + duration*60000);
    hours     = time.getHours().toString();
    minutes   = time.getMinutes().toString();
    if (minutes.length > 1) {
        new_hour = hours + ':' + minutes;
    } else {
        new_hour = hours + ':0' + minutes;
    }

    return new_hour;
},

3 个答案:

答案 0 :(得分:1)

我认为这是因为构造函数的输入而发生的!如果有时间,你应该在几毫秒内输入数字。数据对象具有以下构造函数:

  • new Date();
  • new Date(value);
  • new Date(dateString);
  • 新日期(年,月[,日期[,小时[,分钟[,秒[,毫秒]]]]]);

您可以查看Developer.mozilla,然后您可以查看有关格式的更好说明。

也许Firefox正在转换为包含该部分代码中的内容。我发现了有关数据输入格式的其他说明,您也可以看一下:Convert String to Date

答案 1 :(得分:0)

UTC的正确格式如2013-02-27T17:00:00Z(Z代表祖鲁时间)。如果不存在则附加Z以获得正确的UTC日期时间字符串。

答案 2 :(得分:0)

您可以使用setMinutes使用getMinutes进行更新。

newdate.setMinutes(newdate.getMinutes() + 10);