2016-11-25 3 views
0

Ich habe versucht, es zu suchen, aber es scheint, dass ich nicht die richtige Antwort finden kann. Momentan lade ich die aktuelle Zeit von einem meiner Skripte hoch, nachdem eine erste E-Mail an Unternehmen gesendet wurde. Nachdem sie gesendet wurde, wird sie now() in eine meiner Tabellen in MySQL hochladen. Dies ist das Hochladen YYYY-MM-DD HH:MM:SSTimestamp arbeitet nicht mit strtotime

Ein weiteres Skript

if($company_timestamp < strtotime('-5 days') && $email_sent == "NO"){ /* Code */} 

Wo $company_timestamp ist das Datum und die Zeit vor, sagte eine andere E-Mail nach fünf Tagen mit dem Teil Skript erneut senden.

Es ist in der Tat das Senden der E-Mail, aber es scheint, dass es nicht die richtige Zeit erhält, weil es diese E-Mail auch nach 5 Sekunden sendet. Ist das Format von Datum und Uhrzeit falsch? Und wie kann ich strotime() mit meiner now() in der Datenbank arbeiten.

+0

ein Beispiel dafür, was tut die Variable '$ company_timestamp' –

+0

enthält ich mich einfach eine E-Mail senden und es enthält: 2016.11.24 17.33.57 –

+0

versuchen beide der Zeiten in der Unix-Zeiten Umwandlung und dann vergleiche sie –

Antwort

2

Sie sollten definieren, wie strototime() wirken soll. In Ihrem Fall müssten Sie dies folgendermaßen definieren: date('Y-m-d H:i:s', strtotime('-5 days')); als Ihre Variable $ company_timestamp gibt YYYY-MM-DD zurück HH: ii: ss. Eine andere Möglichkeit wäre, Ihre Variable in ein "strtotime" -Datum umzuwandeln. Also: strtotime ($ company_timestamp).

So Ihr Code im ersten Fall wäre:

if($company_timestamp < date('Y-m-d H:i:s', strtotime('-5 days')) && $email_sent == "NO"){ 
+0

Super Job JeroenE, das hat mein Problem gelöst. Danke –

+0

Kein Problem. Viel Spaß beim Programmieren! – JeroenE

0

Ihre $company_timestamp ist eine Zeichenfolge, müssen Sie es konvertieren, bevor Sie es vergleichen kann.

<?php 
$email_sent = "NO"; 
$company_timestamp = date('Y-m-d H:i:s'); 

if(strtotime($company_timestamp) < date('Y-m-d H:i:s', strtotime('-5 days')) && $email_sent == "NO") 
{ 
    echo "Yes"; 
} 
+0

Es macht keinen Sinn, dass $ company_timestamp eine Zeichenkette ist. Schau meine Lösung an. Das funktioniert und "$ company_timestamp" ist immer noch eine Zeichenkette. Denken Sie daran, dass PHP locker geschrieben ist. – JeroenE