2017-02-23 6 views
0

Ich bin ein newb mit PHP und Code im Allgemeinen, so bitte vergib jede Schlamperei ...PHP Datum Problem, wenn Jahr ändert

Was ich hier gemacht ist ein auslaufendes Link-Tool so jemand ihre Verbindungen machen nach einem bestimmten Datum ablaufen ($getdate).

Wenn die Person auf den Link VOR dem $getdate klickt, werden sie an die $goodurl weitergeleitet.

Wenn die Person auf den Link AFTER die $getdate klickt, werden sie auf die $ abgelaufene URL weitergeleitet.

würde Eine Beispiel-URL sein: https://expiring.click/?d=02/24/2017&g=https://example.com/deal/&e=https://example.com/no-deal/

Hoffentlich macht einen Sinn.

Jetzt funktioniert dieser Code mit einer Ausnahme ... wenn das aktuelle Jahr anders als das Ablaufjahr ist.

Wenn das passiert, werden die Leute immer an die $goodurl gesendet.

Also, wenn mein Link wurde festgelegt in 02.02.2016 laufen und ich habe es heute (23.02.2017) geklickt ... Ich würde die $goodurl sogar sehen, dass das Ablaufdatum vor über einem Jahr ist .

Ich kann es nicht herausfinden, um mein Leben zu retten.

Hoffentlich kann einer von euch nette Leute helfen!

Danke.

<?php 
 
$getdate = htmlspecialchars($_GET["d"]); // Date Good Through 
 
$sentdate = date("m/d/Y", strtotime($getdate)); // Make sure date is in correct format 
 
$goodurl = htmlspecialchars($_GET["g"]); // Good URL 
 
$expiredurl = htmlspecialchars($_GET["e"]); // Expired URL 
 
$expired = htmlspecialchars($_GET["expired"]); // For Expired = y 
 

 
// Date Stuff 
 
date_default_timezone_set('America/New_York'); 
 
$date = date('m/d/Y'); 
 
$datetime = date('m/d/Y h:i:s a', time()); 
 
$tomorrow = date('m/d/Y',strtotime($date . "+1 days")); 
 

 
// Formula Stuff 
 
if ($expired != "y" && !empty($getdate)){ 
 
\t if ($sentdate < $date){ //expired 
 
\t \t if (empty($expiredurl)) { 
 
\t \t \t $link = "https://expiring.click/?expired=y"; 
 
\t \t } else { 
 
\t \t \t $link = $expiredurl; 
 
\t \t } 
 
\t } else if ($sentdate >= $date){ //in date 
 
\t \t $link = $goodurl; 
 
\t } 
 
\t header('Location: '.$link) ; 
 
} else if ($expired == "y") { 
 
\t echo "Sorry, this link has expired."; 
 
} else { 
 
\t ?>

Antwort

0

Sie haben nach der Verwendung von strtotime() funtion auf beiden Sendedaten und das Datum zu vergleichen.

$ senddate = Datum ("m/d/Y", strtotime ($ getdate));

sollte

$sentdate = strtotime(date("m/d/Y", strtotime($getdate))); 

Und $ date = date ('m/d/Y');

sollte

$date = strtotime(date('m/d/Y')); 
+0

Sie Felsenmann, danke! – Nathan

+0

Sie begrüßen ........... :) –