Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

141
Views
La fecha de caducidad de las cookies no está configurada correctamente en Javascript

Tengo este Javascript para copos de nieve en mi sitio web donde estoy almacenando una cookie para recordar la configuración de activación o desactivación de la nieve del usuario.

Lo que estoy tratando de hacer es configurar la cookie para que caduque el 6 de enero de cada año (después de la noche 12) y la nieve solo está activa entre el 1 de diciembre y el 5 de enero de cada año de todos modos.

Por lo tanto, estoy tratando de configurar la fecha de vencimiento de la cookie para que sea el 6 de enero del próximo año o este año (funcionará para todos los años en adelante sin editar, espero), en función de si el usuario hace clic en la página en diciembre de este año o antes del 5 Enero del próximo año.

He agregado alertas a la página para mostrar el valor de fecha de caducidad después de hacer clic en el botón de alternar y, por lo que puedo ver, el resultado de la fecha UTC está bien, pero cuando miro la fecha de caducidad en la consola de mi navegador, siempre es 1 semana desde que hice clic en el botón, por lo que la fecha de caducidad se establece en + 1 semana, pero no se establece en el 6 de enero del próximo año, aunque el valor de la fecha de caducidad se ve bien en alerta.

Para decidir si el año de vencimiento es este año o el próximo, verifico el valor del mes: si no es cero (es decir, enero), entonces el año de vencimiento es el próximo año; de lo contrario, es este año.

 function toggleSnow() { const dateNow = new Date(); let year = dateNow.getYear(); let month = dateNow.getMonth(); var expiryYear; if (month == 0) { expiryYear = year + 1900; } else { expiryYear = year + 1901; } const dayOnExpiry = new Date("Jan 06, " + expiryYear + " 12:00:00"); var expiryDate = dayOnExpiry.toUTCString(); var toggleOnOff = document.getElementById("snowContainer"); var newState = toggleOnOff.nextElementSibling; if (toggleOnOff.classList.toggle("active")) { document.cookie = "Snow=No; Expires=" + expiryDate + "; Path=/; Domain=xxx; Secure; SameSite=Strict; Priority=High"; } else { document.cookie = "Snow=Yes; Expires=" + expiryDate + "; Path=/; Domain=xxx; Secure; SameSite=Strict; Priority=High"; } }

¿Por qué la fecha de caducidad de la cookie siempre es + 1 semana y no el 6 de enero, o no estoy haciendo nada malo y es cosa del navegador?

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Esto se debe a la prevención de seguimiento inteligente de Safari. Limita ciertas cookies a 7 días de vencimiento. ¿Qué restringe el uso de cookies y otro tipo de almacenamiento del navegador web por parte de ITP? :

  • Las cookies de origen creadas por document.cookie de JavaScript caducan en 7 días. Si se accede a las cookies dentro de esos 7 días, su fecha de vencimiento se extenderá por 7 días.
  • Las cookies de origen creadas por document.cookie de JavaScript Y son creadas por un dominio de seguimiento Y la decoración de enlaces de uso caducará en 24 horas. Si se accede a las cookies dentro de las 24 horas, su fecha de vencimiento se extenderá por otras 24 horas.

Entonces, aunque la caducidad se establece en 1 semana, si el usuario continúa accediendo al sitio que usa la cookie, se extenderá automáticamente.

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!