检查datetimepicker中是否传递月份

时间:2014-02-10 07:46:18

标签: javascript jquery asp.net datetime datetimepicker

我有一个计算器来计算两个日期时间值之间的小时数。 我希望在选定月份结束时和新月开始计算从头开始。 现在一切都可以用于2月,但是当有人想要从3月开始计算时,它计算28天而不是31天 我的代码:

<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€");

                }

1 个答案:

答案 0 :(得分:0)

假设:

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

什么是 valuestart ?字符串或时间价值?如果它是一个字符串,那么在某些浏览器中,以下内容可能无法正常工作:

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

假设这些Date对象具有适当的值,并且:

  

当选定月份结束并且新月开始时,计算从头开始

表示从月初开始,然后:

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

timeStart 设置为与 timeEnd 同月的第一个月。但我可能误解了这个问题。