加入收藏 | 设为首页 | 会员中心 | 我要投稿 北几岛 (https://www.beijidao.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

如何在服务器上保留本地时间(使用JS和PHP)?

发布时间:2021-08-28 03:49:11 所属栏目:大数据 来源: https://www.jb51.cc
导读:我正在尝试建立像Stackoverflow这样的评论系统.我面临的问题是,当我运行PHP和我的MysqL数据库的服务器经常在不同的时区存储时间时,如何向用户显示他们和当地时间(即2小时前)的评论时间.用户. 我知道要在服务器上保留当地时间我必须使用这样的代码(换掉欧洲/

我正在尝试建立像Stackoverflow这样的评论系统.我面临的问题是,当我运行PHP和我的MysqL数据库的服务器经常在不同的时区存储时间时,如何向用户显示他们和当地时间(即2小时前)的评论时间.用户.

我知道要在服务器上保留当地时间我必须使用这样的代码(换掉欧洲/苏黎世wherever you are in the world):

$myTimezone =’欧洲/苏黎世; date_default_timezone_set($myTimezone);

我也理解将本地$myTimezone发送到我的服务器我需要以这样的方式使用Javascript获取本地时间(adapted from here):

 var localDate = new Date(),
 offset= -localDate.getTimezoneOffset()/60; //can send this 'offset' variable via $.ajax to the server

我的问题是不是写date_default_timezone_set($myTimezone);在我的每个PHP脚本上吐出时间(最终比评论系统更多的地方),是否有可能以某种方式在我的服务器上全局设置本地时间?

解决方法:

使用PHP通过time() – 自纪元[1970年1月1日]以来的秒数 – 函数完成所有工作.这样,所有用户都可以与服务器同步.

然后将此时间发送给用户并从那里进行javascript格式化:

var dt = new Date(time_returned_from_PHP * 1000); //Multiplied by 1000 since javascript uses milliseconds

然后你可以使用javascripts .toLocalString()让用户的格式在他们的Local中.

所以回答这个问题,我不会把当地时间留在服务器上.客户端和服务器时间不同步. PHP做了它的事情,然后JS进来纠正它到当地时间.

只是为了它的乐趣,你可以使用这个非常好的JS plugin, timeago,格式化时间使用熟悉的Stackoverflow / Facebook风格(2小时前……,几秒钟前等)

(编辑:北几岛)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读