如何在页面加载之前在PHP中使用JS值(时区)?

时间:2015-02-06 18:43:39

标签: javascript php

我在网站上显示日期,这些日期将由来自不同国家/地区的用户使用。根据我的理解,确定用户时区的唯一可靠方法是通过javascript(我使用此https://bitbucket.org/pellepim/jstimezonedetect/)。如果这很重要我正在使用Yii。

现在,我可以使用javascript在注册过程中自动在<select>元素中选择合适的时区。但问题是,我将在主页上向匿名用户显示它们。所以看起来时区必须从javascript中获取并存储在cookie或会话数据中。我可以实现一个草率的解决方案(例如在首页加载时使用UTC)。但是这会让第一次访问者和cookie /会话无法永远存储,因此即使回访用户也会再次出现问题。

我可以想象一些方法:

  1. 如果未设置该值,我可以强制框架发送一个空白页面,其中只包含一个简单的脚本,该脚本会将值重新发送回服务器,然后刷新。
  2. 或者,我可以强制重定向到ajax然后重定向的页面。
  3. 不确定是否可能,但我想我可以回复javascript,ajax值并擦除文档的内容。同时暂停PHP并检查每1秒,如果会话变量在db(或其他任何存储位置)中发生变化。获得时区后,我恢复PHP的工作并发送真实内容。
  4. 这个我更喜欢。我可以输出类似<span class="timestamp>1750411</span>的内容,然后使用js来改变所有“.timestamp”的内容,而不是输出实际日期。
  5. 或者<span class="UTC">*UTC DATETIME HERE*</span>然后使用js根据需要调整小时/天。虽然更好的解决方案(日期显示js关闭)但在DST更改日期间可能会很难。
  6. 问题是我相信使用前三个中的任何一个都会破坏抓取页面的页面,而且那些并不是真正的解决方案。思考?想法?像facebook那样的页面是如何做到的?

0 个答案:

没有答案