校正PHP服务器时间不准的问题

关于怎样解决PHP服务器时间不准的问题,得针对不同的情况进行不同的处理。

下面是经常遇到的情况,及应对办法。

1.PHP服务器时区不对,使用下面代码修正:

<?php
 $timezone = "PRC";
 if(function_exists(‘date_default_timezone_set‘)){
    date_default_timezone_set($timezone);
 }
 echo date(‘d-m-Y H:i:s‘);
 ?>

或修改PHP.INI文件后重新启动IIS或APACHE服务器

date.timezone = RPC

2.PHP服务器的时间不对,不是时区,该问题解决方法如下:

方法一 如果你是管理员,直接去调整服务器的时间,只要服务器时间校正了,就没问题了。

方法二 如果没法修改服务器时间,又要PHP程序显示的时间正确,那得通过PHP代码来实现。具体过程如下:

在全局配置文件中,添加时间提前量。

$webdb[‘correctiontime‘] = ‘-110‘;//把服务器时间减去110秒

书写时间显示函数:

//格式化时间为年月日
function day($time = ‘‘) {
    global $webdb;
    if (!$time) {
        $time = time();
    }
    return date("Y/m/d",$time+$webdb[correctiontime]);
}
//格式化时间为年月日时分秒
function daytime($time = ‘‘) {
    global $webdb;
    if (!$time) {
        $time = time();
    }
    return date("Y/m/d H:i:s",$time+$webdb[correctiontime]);
}
//格式化时间为[2012/06/30 18:24]
function dayshorttime($time = ‘‘) {
    global $webdb;
    if (!$time) {
        $time = time();
    }
    return date("Y/m/d H:i",$time+$webdb[correctiontime]);
}

最后,在所有要显示PHP时间的地方,调用上面3个函数中的其中一个。

平时还是喜欢用最后一种方法,因为不能保证虚拟服务器的时间是完全准确的世界时间。

如果你有系统管理权限,那又另当别论。

转自:https://www.cnblogs.com/ccode/p/3905943.html

原文地址:https://www.cnblogs.com/7qin/p/10189852.html

时间: 2024-12-17 23:58:25

校正PHP服务器时间不准的问题的相关文章

AD域中客户端时间与服务器时间不同步的解决办法

公司考勤用的是国内一家OA软件里的考勤模块,个人在电脑上在规定时间内登记的形式,客户端都是采取域用户登录的形式,电脑客户端的时间显示比OA登记的时间晚两分钟,[注:OA服务器上安装有时间校正软件iTimeSync,确保OA服务器时间一直保持与标准时间一致],其次每次电脑客户端慢两分钟,大家就晚两分钟下班,久而久之大家发现电脑时间老是与手机的时间慢两分钟就不高兴了, 信息反馈到了信息中心,要求信息中心把大家的时间调整一致,因为域用户无法修改时间,即使你修改后重启电脑后时间又与AD同步了. 域中的计

树莓派(Raspberry Pi)日期时间不准的修正方法

在树莓派上,打date命令可以看到系统的日期时间: 小知识: 树莓派没有电池,断电后无法保存时间. 树莓派默认安装了NTP(Network Time Protocol)服务来获取互联网上ntp服务器提供的时间. 如果这个时间不准,可以用这个命令校准一下 sudo ntpd -s -d 如果还是不准,就用这个命令强制设置 我就碰到这种情况,时间在走,但系统日期总是2014-06-20 sudo date --s="2014-08-31 14:42:00" 最后,添加一些国内可用的ntp服

linux命令更改服务器时间

1. linux更改服务器时间: 权限:root用户才有权限更改服务器时间 使用date命令即可设置系统时间. 2. 查看系统时间 date 3. 设置当前系统时间为2015年5月8日19点48分0秒 date -s "2015-05-08 19:48:0"

使用ntpdate命令同步服务器时间出现“the NTP socket is in use, exiting”

今天将一台Centos服务器还原快照后,出现了如下问题: 然后使用ntpdate命令手动同步服务器时间,出现如下提示: [[email protected] tools]# ntpdate 220.231.55.106 4 Nov 12:02:59 ntpdate[29800]: the NTP socketis in use, exiting 解决方法: 第一步:#service ntp stop 第二步:#ntpdate ntp.neu.edu.cn 问题得到解决:

Javascript获取服务器时间

Javascript是运行在客户端的脚本,我们一般都用new Date()来获取当前时间,但是得到的是客户端的时间,客户端时间是随意更改的,如果要做一个产品发布倒计时的话,客户端时间一改,就要闹笑话了.业务中需要用到服务器时间的场景还有很多,那么仅仅通过js怎么拿到服务器时间呢?事实上,只需要一个ajax请求就搞定,通过读取XMLHttpRequest对象的请求头里面的时间戳得到当前服务器时间! 原理就是这么简单:通过ajax向服务器发送请求,当服务器收到请求后即可读取请求头的时间戳了,不管请求

Windows服务器时间不断修改(时间不同步已解决)

一台域内的服务器时间不停地被修改,我先向用户收集了一些信息 只有这一台出现此问题,其他服务器均为正常 系统版本\服务器用途(考虑是否有软件会造成此问题)\日志信息\是否为虚拟机 1.系统版本是Server 2008 数据中心版 2.用途就是一台做图的服务器 3.日志信息如下图,这个日志是系统日志,事件ID为1,时间从2016-7-21 00:50:59 被改为 2016-07-21 08:32:31 4.是Vmware虚拟机 = = 第一天 1)确定服务器的时间服务是否为正常启动 2)查看虚拟机

二、Java Web -- 使用servlet显示服务器时间

一.在项目下创建如下包.及servlet 生成servlet如下: @WebServlet(name="TimmerServlet" ,urlPatterns = "/showtime.do" ) public class TimmerServlet extends HttpServlet { private static final long serialVersionUID = 1L; public TimmerServlet() { super(); } pr

Linux服务器时间不准确

其中一个服务器时间总是和其他服务器时间不同,慢了两秒,影响了测试人员工作. 处理方法: 硬件时钟与系统时钟同步: hwclock --hctosys or clock --hctosys 系统时钟和硬件时钟同步: hwclock --systohc or clock --systohc

客户端操作判断以服务器时间为准

有一个道具是否过期的需求, 界面上实时改变时钟的状态. 1. 绿色没有过期 2. 红色已经过期 客户端时间: 2016-1-15-17:50; 服务器时间: 2016-1-15-17:51; 一旦道具时间已经过期了.我们就需要把时钟状态改成红色.   解决方案:        1. 使用客户端时间,判断道具是否过期. 忽略这个时间戳        2. 每次判断的时候,获取服务器时间,查看道具是否已经过期.        3. 在登录游戏的时候                    1. 获取一