2016-12-12 3 views
1

Ich versuche, eine if Bedingung in JavaScript/PHP zu schreiben. Ich erhalte einen Wert für datefield shipdate. Wenn shipdate nicht null oder leer ist oder das Versanddatum nicht '0000-00-00' ist, dann sollte shipstatus Wert 'Completed' oder sonst 'Pending' sein. Ich bekomme nicht die richtige Ausgabe.Wenn Bedingung, wo Datum ist nicht null und Datum ist nicht '0000-00-00'

Gibt es einen Fehler im unten stehenden Skript?

if ((shipdate.getValue() !== "") && (shipdate.getValue() !== '0000-00-00')) 
     { 
    shipstatus.setValue('Completed'); 
    } else { 
    shipstatus.setValue('Pending'); 
} 

Als ich versuchte, console.log, iam Wert bekommen '

In console.log, iam ein Wert wie dieser immer '1899-11-29T18: 30: 00.000Z' für 'ShipDate' . Ich bin mir nicht sicher warum?

+3

Sie sagte: ShipDate NOT NULL oder leer ist oder ShipDate NICHT ‚0000 -00-00 'aber du verwendest && in deinem if. Verwenden Sie || stattdessen ? –

+0

Haben Sie eine Lösung gefunden? –

Antwort

1

statt und Betreiber Verwendung OR-Operator in if-Anweisung

if ((shipdate.getValue() !== "") || (shipdate.getValue() !== '0000-00-00')) 
+0

(shipdate.getValue()! == '0000-00-00') nimmt nicht. manchmal, wenn das Feld null ist, schreibt es '0000-00-00' in die mysql-db. Ich muss das auch bestätigen. –

+0

Ok, dann fügen Sie eine weitere Bedingung mit OR-Operator hinzu (shipdate.getValue()! == null) Dies erlaubt Ihnen nicht, den if-Block einzugeben, wenn der Wert von shipdate null ist – Aditya

1

Sie vordefinierte PHP leer Funktion nutzen zu können.

if (empty(shipdate.getValue()) || shipdate.getValue() == '0000-00-00') 
{ 
    shipstatus.setValue('Pending'); 
} 
else 
{ 
    shipstatus.setValue('Completed'); 
} 

Oder können Sie PHP checkdate Funktion:

function validateDate($date, $format = 'Y-m-d H:i:s') 
{ 
    $d = DateTime::createFromFormat($format, $date); 
    return $d && $d->format($format) == $date; 
} 
+0

(shipdate.getValue()! == '0000-00-00') nimmt nicht. manchmal, wenn das Feld null ist, schreibt es '0000-00-00' in die mysql-db. Ich muss das auch bestätigen. –

+0

@SanjuMenon können Sie validateate Funktion verwenden. – EngineerCoder

1

Prüfen Sie zuerst in Alarm oder console.log(), welcher Wert erhalten Sie? wenn Sie bekommen null dann anothe Zustand versetzt

if ((shipdate.getValue() !== "") || (shipdate.getValue() !== NULL) ||(shipdate.getValue() !== '0000-00-00')) 
     { 
    shipstatus.setValue('Completed'); 
    } else { 
    shipstatus.setValue('Pending'); 
} 
+0

(shipdate.getValue()! == '0000-00-00') nimmt nicht. manchmal, wenn das Feld null ist, schreibt es '0000-00-00' in die mysql-db. Ich muss das auch bestätigen. –

+0

Oder muss ich nur geben (shipdate.getValue()! == '0')? –

+0

check in console.log was bekommst du? und setzen Sie die Bedingung, dass –

1

Versuchen:

if (! (strlen(trim(shipdate.getValue())) == 0 || shipdate.getValue() == '0000-00-00')) 
{ 
    shipstatus.setValue('Completed'); 
} else { 
    shipstatus.setValue('Pending'); 
} 

Hope this helps ...

+0

(shipdate.getValue()! == '0000-00-00') nimmt nicht. manchmal, wenn das Feld null ist, schreibt es '0000-00-00' in die mysql-db. Ich muss das auch bestätigen. –

+0

Bitte Code lesen: shipdate.getValue() == '0000-00-00'. Sie sollten die gegenüber –

+0

testen In diesem Fall ist es die 0000-00-000 perfekt. Aber wenn das Datum eingegeben wird, wird es auch als 'Ausstehend' angezeigt. –

Verwandte Themen