2013-06-25 3 views
0

J'essaye d'ajouter des jours et/ou des semaines à une date qui est tirée d'une base de données. Tout ce que j'obtiens est la date par défaut du 12-31-1969 quand il ne peut pas sortir correctement. Voici mon code:Ajouter des jours à date variable

$lastFeed = "6-25-2013"; //pulled from database last feed date 

$feedSchedule = "2"; //pulled from database number of weeks. 

$nextFeeding = date("m-d-Y", strtotime($lastFeed . ' + ' . $feedSchedule. ' week')); 

J'ai aussi essayé de multiplier les temps de jours la variable feedSchedule $ et remplacement semaine (s) avec jour (s).

+0

ce qui est '$ feedDate'? – Ronnie

+0

Désolé, c'était une faute de frappe, je l'ai édité pour le remplacer par $ lastFeed. –

+0

http://stackoverflow.com/questions/2332681/add-number-of-days-to-a-date –

Répondre

0

Voici le code qui fonctionnera et compte pour le Date Time String invalide

function nextFeeding($lastFeed,$feedSchedule){ 
    //fix date format 
    $correctedDate = explode("-",$lastFeed); 
    //pad month to two digits may need to do this with day also 
    if($correctedDate[0] < 10 && strlen($correctedDate[0])!==2){ 
    $correctedDate[0] = "0".$correctedDate[0]; 
    } 
    $correctedDate = $correctedDate[2]."-".$correctedDate[0]."-".$correctedDate[1]; 
    //get the next feeding date 
    $nextFeeding = date("m-d-Y", strtotime($correctedDate . ' + ' . $feedSchedule. ' week')); 
    //return value 
    return $nextFeeding; 
} 

$lastFeed = "6-25-2013"; //pulled from database last feed date 

$feedSchedule = "2"; //pulled from database number of weeks. 

$nextFeeding = nextFeeding($lastFeed,$feedSchedule); 
echo $nextFeeding; 

retours

07-09-2013 
+0

J'ai essayé ceci et cela n'a pas fonctionné. –

+0

Désolé, j'ai oublié de mettre le point-virgule sur la troisième ligne ... juste essayé en PHP bac à sable et tout fonctionne! – amaster

+0

J'ai placé le point-virgule là parce que je l'ai remarqué aussi. Cela ne fonctionne toujours pas. –

2

6-25-2013 n'est pas un format de date valide. Essayez YYYY-MM-DD

+0

Oui, j'ai vérifié, ça va marcher. – drull

+0

Le format de date que j'utilise fonctionne correctement et dans le but de servir. Je l'ai utilisé dans le passé et sur les lignes de code précédentes avec cette application. –

+0

@n_starnes Mais comme vous l'avez remarqué, cela ne fonctionne pas comme format d'entrée pour 'strtotime()'. Vous n'avez pas besoin de changer le format globalement, mais vous devrez le modifier pour l'utiliser avec 'strtotime()'. –

Questions connexes