2014-02-10 2 views
0

У меня есть калькулятор, который вычисляет часовой пояс между двумя значениями даты и времени. Я хочу, когда выбранный месяц заканчивается и начинается новый месяц, начинается с начала. Теперь все идет нормально за Feb месяц, но когда кто-то хочет начать известково с марта, то он рассчитывает в течение 28 дней, а не 31 Мой код:Проверьте, прошел ли месяц в datetimepicker

<script> 
    $(function() { 
     $('#frompicker').datetimepicker({ dateFormat: 'd/M/yy' }); 
     $('#topicker').datetimepicker({ dateFormat: 'd/M/yy' }); 
    }); 

<script> 
    $(document).ready(function() { 
     function calculateTime() { 

      //get values 

      var valuestart = $("#frompicker").val(); 
      var valuestop = $("#topicker").val(); 

      //alert(valuestart); 
      var timeStart = new Date(valuestart); 
      var timeEnd = new Date(valuestop); 

      var hourDiff = (timeEnd - timeStart)/3600000; 

       if (hourDiff < 0) { 
        $("p").html("<b>price:</b> " + "wrong data"); 

    else if (hourDiff > 24&& hourDiff <= 672) { //28days 
        $("p").html("<b>price:</b> " + "100.00" + "€"); 
       } 
    else if (hourDiff >= 672) { // 
        var hourDiffnew = hourDiff - 672; 

        var finalpricep61 = (hourDiffnew * 0.125) + 90; 
        var finalpricep62 = finalpricep61.toFixed(); 


        $("p").html("<b>price:</b> " + finalpricep62 + ".00€"); 

       } 

+0

У вас нет жесткого кодирования, чтобы дать вам разные результаты за 1-28 дней и более 28 дней? –

+0

Да, это должно быть изменено, но из-за формата даты и времени я могу справиться с этим. Я пытаюсь ничего не делать. – Gunner

ответ

0

Дано:

var valuestart = $("#frompicker").val(); 

что такое оценка estart? Строка или значение времени? Если это строка, то, вероятно, следующий не будет работать, как ожидается, в некоторых браузерах:

var timeStart = new Date(valuestart); 
var timeEnd = new Date(valuestop); 

Предполагая, что эти Дата объекты имеют соответствующие значения, и что:

когда выбранный месяц заканчивается, и новый месяц начала вычисление начинается с начала

означает начать с начала месяца, то:

if (timeStart.getMonth() != timeEnd.getMonth()) { 
    timeStart.setDate(1); 
    timeStart.setMonth(timeEnd.getMonth()); 
} 

будет устанавливать timeStart до первого числа того же месяца, что и timeEnd. Но я мог бы неправильно истолковать этот вопрос.

+0

Значение start - это значение datetime, например: 10/Feb/2014 00:00 (или 02/10/2014 00:00). Я действительно благодарю вас за ответ – Gunner

+0

Наконец, я хочу проверить, например: if (hourDiff> 312 && hourDiff <= "последний день месяца") { $ ("p"). Html ("цена:" + «100.00» + «€»);}. Как я могу объявить этот «последний день месяца»? – Gunner

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