{"id":687,"date":"2010-11-13T13:44:29","date_gmt":"2010-11-13T12:44:29","guid":{"rendered":"http:\/\/www.sortea2.com\/blog\/?p=687"},"modified":"2010-11-13T13:44:29","modified_gmt":"2010-11-13T12:44:29","slug":"zonas-horarias-con-php","status":"publish","type":"post","link":"https:\/\/www.sortea2.com\/blog\/2010\/11\/zonas-horarias-con-php\/","title":{"rendered":"Zonas horarias con PHP"},"content":{"rendered":"<p>Hace un par de a\u00f1os publicamos un art\u00edculo titulado <a href=\"http:\/\/www.sortea2.com\/blog\/2008\/11\/zonas-horarias-y-php\/\">Zonas horarias y PHP<\/a> en el que explic\u00e1bamos los entresijos del sistema que hab\u00edamos empleado para la programaci\u00f3n de los sorteos que se realicen fuera de Espa\u00f1a.<\/p>\n<p>En ese art\u00edculo se narra un mecanismo que proporciona el lenguaje de PHP para realizar los cambios de horario de forma eficaz y abarcando todas las opciones posibles. Sin embargo recientemente tuvimos que revisar todo el sistema porque hab\u00eda muchas quejas de usuarios que ten\u00edan problemas con sus sorteos programados que se realizaban a horas diferentes a las que ellos hab\u00edan definido.<\/p>\n<p>Al analizar la situaci\u00f3n m\u00e1s en detalle pudimos ver que hay bastantes problemas en el sistema que indicamos en el art\u00edculo \u00abZonas horarias y PHP\u00bb que no tienen f\u00e1cil soluci\u00f3n.<\/p>\n<p>Por un lado est\u00e1 el problema de que todo el empaquetado de zonas horarias y fechas de cambio est\u00e1 dentro de la instalaci\u00f3n de PHP. Si un gobierno decide cambiar esa fecha, como ha sucedido recientemente con Argentina, la informaci\u00f3n de cambio est\u00e1 obsoleta y es sencillamente equivocada. PHP soluciona el problema creando una modificaci\u00f3n a sus programas pero esa modificaci\u00f3n se incluye en la versi\u00f3n m\u00e1s moderna de todas.<\/p>\n<p>Ahora bien, uno no puede actualizarse la versi\u00f3n de PHP cada d\u00eda. Sobre todo si se tiene la p\u00e1gina en un hosting compartido, la actualizaci\u00f3n de versi\u00f3n la dictan los proveedores del servicio, uno no puede realizar dicho cambio. En nuestro caso, tenemos que vivir con una versi\u00f3n desfasada que tiene errores en las conversiones de hora para sorteos de Argentina y hemos tenido que implementar soluciones alternativas un poco artificiales. Oficialmente con la versi\u00f3n de PHP instalada, cuando queremos saber la hora actual de Buenos Aires no da una que <strong>est\u00e1 equivocada en dos horas<\/strong>.<\/p>\n<p>Hace unas semanas se produjo el cambio de hora y tambi\u00e9n pudimos ver c\u00f3mo horas antes de dicho cambio cuando se consultaba la hora est\u00e1ndar del sistema (mediante time(), tras establecer la zona horaria), la UTC (antigua de Greenwich) el sistema estaba dando un dato err\u00f3neo en una hora.<\/p>\n<p>En conclusi\u00f3n, dar una actualizaci\u00f3n a la opini\u00f3n que expres\u00e1bamos hace dos a\u00f1os. No se puede establecer un sistema de cambios horarios que sea eficaz al 100% mediante PHP. La \u00fanica opci\u00f3n es actualizar las versiones casi de continuo o crear un sistema artesanal donde ir indicando las diferencias horarias. El problema no es exclusivo de PHP y la culpa no es de ellos sino de muchos gobiernos que arbitrariamente modifican los pol\u00edticas sobre diferencias horarias, no se ci\u00f1en a lo previsto a\u00f1os antes sino que realizan muchos cambios con efecto inmediato. En algunos casos tambi\u00e9n hay medidas de tipo pol\u00edtico, como algunas regiones que pretenden distinguirse del resto del pa\u00eds con un cambio de zona horaria. Estos cambios no se reflejan autom\u00e1ticamente en las funciones de PHP.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hace un par de a\u00f1os publicamos un art\u00edculo titulado Zonas horarias y PHP en el que explic\u00e1bamos los entresijos del sistema que hab\u00edamos empleado para la programaci\u00f3n de los sorteos que se realicen fuera de Espa\u00f1a. En ese art\u00edculo se narra un mecanismo que proporciona el lenguaje de PHP para realizar los cambios de horario [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[55,5],"tags":[],"class_list":["post-687","post","type-post","status-publish","format-standard","hentry","category-php-2","category-tutoriales"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.sortea2.com\/blog\/wp-json\/wp\/v2\/posts\/687","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.sortea2.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.sortea2.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.sortea2.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.sortea2.com\/blog\/wp-json\/wp\/v2\/comments?post=687"}],"version-history":[{"count":1,"href":"https:\/\/www.sortea2.com\/blog\/wp-json\/wp\/v2\/posts\/687\/revisions"}],"predecessor-version":[{"id":688,"href":"https:\/\/www.sortea2.com\/blog\/wp-json\/wp\/v2\/posts\/687\/revisions\/688"}],"wp:attachment":[{"href":"https:\/\/www.sortea2.com\/blog\/wp-json\/wp\/v2\/media?parent=687"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.sortea2.com\/blog\/wp-json\/wp\/v2\/categories?post=687"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.sortea2.com\/blog\/wp-json\/wp\/v2\/tags?post=687"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}