【问题标题】:Compare between two dates retrieved from database比较从数据库中检索到的两个日期
【发布时间】:2019-06-29 01:57:11
【问题描述】:

我正在尝试比较位于两个 td 中的两个日期,并根据比较结果更改行的 CSS。

$(document).ready(function(){

    var value1 = $('.eval1').text();
    var value2 =  $('.eval2').text();
    var trr=$('.eval1').closest('tr');
    var parts =value1.split('-');
    var mydate1 = new Date(parts[0], parts[1] - 1, parts[2]);
    console.log(mydate1);
    var parts =value2.split('-');
    var mydate2 = new Date(parts[0], parts[1] - 1, parts[2]);
    console.log(mydate2);
    if( mydate1 < mydate2 ) {
        trr.css('background-color', '#F44336').css('opacity', '0.5').css('color', 'black');

    }
});

我的控制台的输出是这样的:

Sun Nov 17 2735 00:00:00 GMT+0100(heure normale d'Europe centrale)
Sun Jan 13 2380 00:00:00 GMT+0100 (heure normale d'Europe centrale)

但是年份是错误的,因为我检索的日期是:2018-08-13 和 2018-07-26。

你能帮忙解决这个问题吗?

编辑

edit2:

console.log(value1)console.log(value2) 的结果

2018-07-262018-07-262018-07-262018-07-262018-07-262018-07-262018-07-262018-07-262018-07-262018-07-26
2018-08-132018-08-132018-08-132018-08-132018-08-132018-08-132018-08-132018-08-132018-08-132018-08-13

edit3

    @foreach($CommandesDomi as $Commande)
                                            <tr>
                                                <td>{{$Commande->NUM_CHASSIS_NADIN}}</td>
                                                <td>{{$Commande->CodeMarque}}</td>
                                                <td>{{$Commande->CodeModele}}</td>
                                                <td>{{$Commande->CodeFinition}}</td>
                                                <td>{{$Commande->Date_embarquement}}</td>
                                                <td class="eval2">{{$Commande->date_arrivage_oran}}</td>
                                                <td class="eval1">{{$Commande->data_dom}}</td>


                                            </tr>
                                         @endforeach

【问题讨论】:

  • console.log value1 和 value2 请
  • 试试var mydate1 = new Date(Date.parse(value1));
  • @IslamElshobokshy Sun Nov 17 2735 00:00:00 GMT+0100 (heure normale d'Europe centrale) Sun Jan 13 2380 00:00:00 GMT+0100 (heure normale d'Europe centrale)
  • 那么您检索的日期并不是您所说的那样。可以看到,是2735和2380。再往上尝试调试,看看$('.eval2').text()是从哪里来的,输出,一直往上走,直到找到问题的根源

标签: javascript date


【解决方案1】:

试试这个,而不是parts[2],请使用parts[2].substring(0,2),parts[2] 像这样给出日期262018,这是无效的日期,这就是你得到错误的原因。

$(document).ready(function(){

    var value1 = $('.eval1').text();
    var value2 =  $('.eval2').text();
    var trr=$('.eval1').closest('tr');
    var parts =value1.split('-');
    var mydate1 = new Date(parts[0], parts[1] - 1, parts[2].substring(0,2));
    console.log(mydate1);
    var parts =value2.split('-');
    var mydate2 = new Date(parts[0], parts[1] - 1, parts[2].substring(0,2));
    console.log(mydate2);
    if( mydate1 < mydate2 ) {
        trr.css('background-color', '#F44336').css('opacity', '0.5').css('color', 'black');

    }
});

【讨论】:

  • 打印:无效日期
  • 我尝试了 new Date('2018-08-13') --->2018 年 8 月 13 日星期一 05:30:00 GMT+0530(印度标准时间)和 new Date('2018- 07-26') --->2018 年 7 月 26 日星期四 05:30:00 GMT+0530(印度标准时间),您的 value1 和 value2 与 '2018-08-13' 、'2018-07-26'' 完全相同还是不??
  • 不,value1 和 value2 像这样多次检索 eval1 和 eval2 value1 : 2018-07-262018-07-262018-07-262018-07-262018-07-262018-07-262018-07-262018-07-262018-07-262018-07-26 value2: 2018-08-132018-08-132018-08-132018-08-132018-08-132018-08-132018-08-132018-08-132018-08-132018-08-13
  • 能否请您单独提供 value1 值和 value2 值以便更好地理解。您使用类提取,许多输入字段具有相同的类,我认为这就是它提取所有字段值的原因。
  • 在编辑中,我们在我的 td 中找到 value1 和 value2 的真实值,在 edit2 中,我们找到了我从console.log得到的东西
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-05-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多