Ich habe Benutzer Geburtstag in birthday
als 1999-02-26 gespeichert.PHP: Geburtstag überprüfen heute
Wie kann ich überprüfen, ob der Geburtstag heute ist?
if(date('m-d') == ..?
Ich habe Benutzer Geburtstag in birthday
als 1999-02-26 gespeichert.PHP: Geburtstag überprüfen heute
Wie kann ich überprüfen, ob der Geburtstag heute ist?
if(date('m-d') == ..?
if(date('m-d') == substr($birthday,5,5))
hinzuzufügen, was Tim sagte:
if(date('m-d') == substr($birthday,5,5) or (date('y')%4 <> 0 and substr($birthday,5,5)=='02-29' and date('m-d')=='02-28'))
Diese Antwort sollte Arbeit, aber es hängt von strtotime
der Lage, Ihre Datenbank des Datumsformat, um herauszufinden:
$birthDate = '1999-02-26'; // Read this from the DB instead
$time = strtotime($birthDate);
if(date('m-d') == date('m-d', $time)) {
// They're the same!
}
_Should_ ist nicht genug in dieser komplizierten Welt. Diese Datums- und Zeitberechnung hat immer versteckte Schwierigkeiten an verschiedenen Kanten und Vorkommen. Es ist sehr schwierig, den Geburtstag eines am 29. Februar Geborenen zu überprüfen. Die Suche nach Schaltjahren ist kompliziert. Dies verdient eine fertige Lösung. – Gherman
@German Nun, strtotime wird von einer dritten Partei geschrieben ... Übrigens, ich bemerkte, dass ich versehentlich mit der manuellen Seite von strptime verbunden hatte, als ich das schrieb ... was eine andere Funktion ist. Übrigens, seit diese Antwort geschrieben wurde, hat PHP DateTime-Objekte und zugehörige Funktionen hinzugefügt. – Powerlord
Ab PHP 5.2:
if (substr($dateFromDb, -5) === date_create()->format('m-d')) {
// Happy birthday!
}
<?php
/**
* @param string $birthday Y-m-d
* @param int $now
* @return bool
*/
function birthdayToday($birthday, $now = null) {
$birthday = substr($birthday, -5);
if ($now === null) {
$now = time();
}
$today = date('m-d', $now);
return $birthday == $today || $birthday == '02-29' && $today == '02-28' && !checkdate(2, 29, date('Y', $now));
}
Sie sollten auch für Ted Geburtstag am 2004-02-29 erlauben - im Jahr 2011, wird er seinen Geburtstag am 28.2 feiern. –
Schöne Gedanken tim, wie könnte das getan werden? – Johnson
Danke Tim. Ich habe mich in der Antwort geändert. – CristiC