Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

198
Vistas
Cómo llamar a un método cada 2 semanas en PHP sin Crontab

Quiero actualizar el div en html para mostrar diferentes contenidos cada semana con solo php y sin el uso de cron. ¿Cómo será posible lograrlo? El siguiente código es para activar el código cada 2 meses el día 10, pero supongo que la lógica será diferente. ¡Si es posible, alguna pista o ejemplo sería genial! ¡Me encantará saber de ti!

 // check if current day is 10th and month is an even number if (date('d')==10 && date('m') % 2 == 0) { // get todays-date (format: yyyymmdd) $today = date('Ymd'); // get info about last run $last_run = variable_get('my_last_run', 0); // check last run was not today if ($last_run!=$today) { // set last run to today variable_set('my_last_run', $today); /* Place your code here */ } }
about 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Acabo de actualizar tu ejemplo, ahora funcionará todos los próximos lunes:

 $weekInYearNumber = (int)date('W'); $weekDayNumber = (int)date('w'); if ($weekDayNumber === 1 && $weekInYearNumber % 2 == 0) { // Rest of your code. }
about 4 years ago · Santiago Trujillo Denunciar

0

Si quieres hacerlo rápido, puedes contar las semanas desde el primero de enero de 2018 (porque era lunes: cualquier otro año que comience con un lunes estará bien), y luego verifica si ese número es par o impar:

 $diffBetweenNowAndFirstJan2018 = time() - strtotime("2018-01-01"); $numberOfWeeksSinceFirstJan2018 = floor($diffBetweenNowAndFirstJan2018 / (60 * 60 * 24 * 7)); $isNumberOfWeeksOdd = ($numberOfWeeksSinceFirstJan2018 % 2 == 1) if($isNumberOfWeeksOdd){ // it's other week time }

En una línea:

 if( ( (floor((time() - strtotime("2018-01-01")) / (60 * 60 * 24 * 7))) % 2 == 1) ){ // it's other week time }

No debe usar la fecha ('W') como dice Vladmir, porque entre la víspera de año nuevo podría obtener dos semanas "impares" consecutivamente.

about 4 years ago · Santiago Trujillo Denunciar

0

Si no puede o no quiere usar un trabajo cron para eso (que sería la solución más fácil y recomendada), puede crear un script PHP que pase la mayor parte del tiempo durmiendo y se despierte para verificar la fecha y ejecuta lo que necesites.

Si no le importan las fechas y solo quiere ejecutarlo cada dos semanas, puede hacer que se duerma así:

 sleep(14*24*60*60);

Haga que su secuencia de comandos ejecute su código después de eso y coloque todo eso dentro de un ciclo infinito. Luego simplemente ejecute el script desde la consola para que no tenga un límite de tiempo de ejecución.

Tenga en cuenta que el script puede dejar de ejecutarse por diferentes motivos, por ejemplo, cuando se reinician los servidores, por lo que debe monitorear el proceso y volver a ejecutarlo automáticamente si no se está ejecutando o se está reiniciando.

about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda