Estoy usando WordPress como mi CMS. Estoy tratando de verificar si alguno de mis usuarios cumple años en la semana actual. sin exito
Aquí está mi código
$fd = date("Y-m-d",strtotime('monday this week'));
$ld = date("Y-m-d",strtotime("sunday this week"));
$cdate = date('m-d',time());
if (($cdate >= $fd) && ($cdate <= $ld)) {
echo 'true';
} else {
echo 'false';
}
Esto me está devolviendo falso si uso
'm-d' in $cdate variable
Funciona bien si se usa Ymd, pero en ese caso, los años deberían ser los mismos, lo cual no es posible ya que todas las personas tienen diferentes años de nacimiento.
Sultán Allaudeen
Aquí está mi camino
Para encontrarlo puedes hacer así
Paso 1 :
Encuentra el inicio y el último día de la semana
$FirstDay = date("Y-m-d", strtotime('sunday last week'));
$LastDay = date("Y-m-d", strtotime('sunday this week'));
Paso 2 :
Ver si la fecha dada está entre el inicio y el último día de la semana
if($Date > $FirstDay && $Date < $LastDay) {
echo "It is Between";
} else {
echo "No Not !!!";
}
Si
Yes
entonces pertenece másNot
Entonces, finalmente, el código que tendrás es
<?php
$Date = "2015-06-01"; #Your Own Date
$Date = date('Y-m-d'); #Or Current Date Fixed here
$FirstDay = date("Y-m-d", strtotime('sunday last week'));
$LastDay = date("Y-m-d", strtotime('sunday this week'));
if($Date > $FirstDay && $Date < $LastDay) {
echo "It is Between";
} else {
echo "No Not !!!";
}
?>
Nota
-
Puede tener su propio día de inicio, es decir,
Sunday
oMonday
-
Puede tener su propia fecha o fecha actual
Puede utilizar el parámetro de formato W
que le dará el número del débil actual en el año (la semana del calendario).
if(date("W") == date("W", $birthday)){
// User has birthday this week
}
$birthday
Tiene que haber una marca de tiempo aquí. Tal vez tengas que usar $birthday = strtotime($birthdate);
.
-
Esta es la solución más elegante de la OMI
– Tami
29 mayo 2021 a las 21:54
La respuesta de Richard es acertada. Solo para las personas que llegan a este post buscando como comprobar que la semana es la misma y también comprobar que el año es el mismo; esto también verificará que no solo estén en la misma semana del año, sino también en el mismo año.
$testData = "1447672336";
if((date("W") == date("W", $testData)) && (date("Y") == date("Y", $testData))){
// The timestamp in $testData is the same week of the same year as today is.
}
En mi opinión, la solución más fácil es pasar cadenas hasta la fecha y mantenerlas como un número, como puedes ver en este ejemplo:
$fd = strtotime('monday this week'); // First date
$ld = strtotime('sunday this week'); // last date
$birthday_date = strtotime('YYYY-mm-dd'); // Birthday date
if (($birthday_date > $fd) && ($birthday_date < $ld)) {
echo 'true';
} else {
echo 'false';
}
Por supuesto, tendrás que cambiar el año de cumpleaños al actual.
en la mayoría de los casos, algo como
if(date('W', $birthday) == date('W')){}
debería ser suficiente.– Rufino
31 de mayo de 2015 a las 10:14