2017-07-19 3 views
-1

J'ai un code php où j'essaie de comparer des dates et la condition est si la date actuelle est < = frmdate alors les lignes de requête doivent être insérées dans le tableau alors que le problème est maintenant qu'il insère seulement des lignes qui sont moins et non ce qui est equalsto currentdate ... s'il vous plaît me aider à résoudre ce problèmeComparaison de date avec les opérateurs de comparaison

$prodarray= array(); 
while($row =mysqli_fetch_assoc($result)) 
{ 
    $todateExtracted=$row['to_date']; 
    $fromdateExtracted=$row['from_date']; 
    $toDate=strtotime($todateExtracted); 
    $frmDate=strtotime($fromdateExtracted); 

    if($currentdate <= $frmDate) 
    { 
     $prodarray[] = $row; 
    } 
    // $i++; 
} 
+0

Quel est le format des dates? Si c'est autre chose qu'UNIX, c'est votre problème. Donc si c'est date() c'est une chaîne. Vous ne pouvez pas comparer les chaînes. Désolé mon mauvais. Je n'ai pas lu assez attentivement. Attendez ... Qu'est-ce que $ currentdate? – Andreas

+0

COMMENT et que chargez-vous dans '$ currentdate' – RiggsFolly

+0

Mon pari c'est une valeur de chaîne d'aujourd'hui. Depuis le reste du code semble ok, un peu maladroit mais ok. Et la question est marquée "comparaison de chaînes". Je veux parier contre moi @Riggs :-) – Andreas

Répondre

0

Utilisez Strtotime() http://php.net/manual/en/function.strtotime.php

$prodarray= array(); 
while($row =mysqli_fetch_assoc($result)) 
{ 
    $todateExtracted=$row['to_date']; 
    $fromdateExtracted=$row['from_date']; 
    $toDate=strtotime($todateExtracted); 
    $frmDate=strtotime($fromdateExtracted); 
    if(strtotime($currentdate) <= strtotime($frmDate)) 
    { 
     $prodarray[] = $row; 
    } 
    // $i++; 
} 
+0

Un peu dangereux si vous ne connaissez pas le format utilisé pour la date dans '$ currentdate' – RiggsFolly

+1

Eh bien, @RiggsFolly OP n'a pas fourni le format de la date. Cependant, dans la plupart des cas «normaux», 'strtotime()' devrait fonctionner. –