日期计算错误(JS)

时间:2017-11-13 08:47:09

标签: javascript c# asp.net asp.net-mvc asp.net-mvc-4

我有从db

返回值的repo方法

这是代码

 public List<Logging> GetDriving()
    {
        using (TraxgoDB ctx = new TraxgoDB())
        {

            var items = ctx.Logging.Where(x => x.Datatype == Datatype.Position).AsEnumerable().Select(

                x => new Logging
                {
                    Longitude = x.Longitude,
                    Latitude = x.Latitude,
                    Speed = x.Speed,
                    CurrentDateTime = x.CurrentDateTime.Date

                }
            ).ToList();

            return items;
        }
    }

在js中,我需要在热图上隐藏标记,其中CurrentDateTime不是==输入时间。

所以这样我会显示所有标记

function getDriving() {
var url = $('#map').data('request-url2');
$.getJSON(url,
    function (data) {
       $.each(data,
            function (i, item) {
                marker.push({
                    'location': new google.maps.LatLng(item.Latitude, item.Longitude),
                    'map': map,
                    'weight': item.Speed,
                    'radius': 10,
                    'date': item.CurrentDateTime
                });
            });
        var pointArray = new google.maps.MVCArray(marker);

        heatmap = new google.maps.visualization.HeatmapLayer({
            data: pointArray
        });
        heatmap.setMap(map);
    });

};

像这样我做过滤

$('#filter').on('click',
   function () {
       heatmap.setMap(null);
       var startValue = $('#startDate').val();
       var filtered = [];
       $.each(marker, function (i, marker) {
           var getDate = marker.date.match(/\d/g).join('');
           var markerDate = new Date(parseFloat(getDate));
           var valDate = new Date(startValue);
           if (markerDate.getTime() === valDate.getTime()) {
               filtered.push(marker);
           } else {
              console.log('marker date is', markerDate.getTime(), 'valdate is', valDate.getTime());
           }
       });
       var pointArray = new google.maps.MVCArray(filtered);
       console.log(pointArray);
       heatmap = new google.maps.visualization.HeatmapLayer({
           data: pointArray
       });
       heatmap.setMap(map);
   });

但是在日志中我看到过滤后没有值。

但为什么?

我在输入13/11/2017和数据库中我有2017-13-10 18:50:46.0000000所以它可能是相同的。

我的错误在哪里?

感谢您的帮助。

以下是markerDate

的控制台日志

enter image description here

这是valDate

的屏幕

enter image description here

但是如果我写console.log(startValue);,为什么它无效我有13/11/2017

0 个答案:

没有答案