php读取客户机本地时间,PHP如何获取客户端时区以及准确显示所在地时间
这篇文章主要为大家详细介绍了PHP如何获取客户端时区以及准确显示所在地时间,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,有需要的朋友可以收藏方便以后借鉴。
这段时间给用户做了一个外贸网站,网站主要正对亚洲、欧洲已经美洲的用户,其中有涉及到一个小功能,使用PHP实现根据访客的时区给对方显示他们当地时间,并记录。但是有点前端设计的技术都知道PHP是运行在服务器终端的代码,因此也只能获取服务器的时间,所有仅仅使用PHP本身我们是无法获取到客户端时间这个功能的,这里我们需要找到JS来帮忙。
这里我们使用到JS来保存用户时区信息到COOKIE,然后用服务器端的php读取COOKIE实现根据用户时区显示当地时间的方法来实现,具体实现方法代码如下:
1、JS代码window.onload = function() {
//TODO begin 处理登陆用户时区
//获得登陆用户时区与GMT时区的差值
var exp = new Date();
var gmtHours = -(exp.getTimezoneOffset()/60);
setCookie('customer_timezone',gmtHours,1);
//判断是否为夏令时
date = exp.format('yyyy-MM-dd HH:mm:ss');
if(inDaylightTime(date)){
setCookie('inDaylightTime',1,1);
}
}
//设置Cookie
function setCookie(c_name,value,expiredays){
var exdate=new Date()
exdate.setDate(exdate.getDate()+expiredays)
document.cookie=c_name+ "=" +escape(value)+
((expiredays==null) ? "" : "; expires="+exdate.toGMTString())
}
//判断时间是东半球还是西半球
function isEastEarthTime(newDate)
{
var dj= newDate.getGMTOffset(false);
if (dj.indexOf("-") == -1){
return true;
} else {
return false;
}
}
//是否是夏令时
function inDaylightTime(date){
var start = new Date(date.getTime());
start.setMonth(0);
start.setDate(1);
start.setHours(0);
start.setMinutes(0);
start.setSeconds(0);
var middle = new Date(start.getTime());
middle.setMonth(6);
// 如果年始和年中时差相同,则认为此国家没有夏令时
if ((middle.getTimezoneOffset() - start.getTimezoneOffset()) == 0)
{
return false;
}
var margin = 0;
if (this.isEastEarthTime(date)) {
margin = middle.getTimezoneOffset();
} else {
margin = start.getTimezoneOffset();
}
if (date.getTimezoneOffset() == margin) {
return true;
}
return false;
}
//DONE end
2、服务器端的PHP代码//24小时内 GMT到本地时间的转换
function gmt_to_local($time = '', $dst = FALSE){
//JavaScript设置Cookie,PHP取值
if (isset($_COOKIE["customer_timezone"])){
$timezone = $_COOKIE["customer_timezone"];
}else{
$timezone = 0;
}
if ($time == ''){
return now();
}
//时间处理
$time += $timezone * 3600;
//是否为夏令时
if(isset($_COOKIE["inDaylightTime"]) && $_COOKIE["inDaylightTime"]==1)
{
$dst = TRUE;
}
if ($dst == TRUE){
$time += 3600;
}
return date("H:i",$time);
}
通过这2段代码我们就能基本实现PHP显示当地时间了。
以上就是PHP如何获取客户端时区以及准确显示所在地时间的全部内容,希望对大家的学习和解决疑问有所帮助,也希望大家多多支持361模板网。
感谢打赏,我们会为大家提供更多优质资源!
php读取客户机本地时间,PHP如何获取客户端时区以及准确显示所在地时间相关推荐
- 关于utc时间与格林威治时间(linux上获取系统时区及代码)
关于utc时间与格林威治时间 协调世界时,又称世界统一时间,世界标准时间,国际协调时间,简称UTC.它从英文"Coordinated Universal Time"/法文" ...
- excel怎样修改表格时间和计算机一制,修改Excel如何显示修改时间/修改日期怎么改excle...
excel表格自定义格式的日期怎么改成文本格式的日期 1/3 日前,在Excel中录入期,它自动把转换成了日期,后来导入软件时,却发现全是几万的.在电子表格中把这些日期转成文本格式,所有的日期与软件导 ...
- java 一天的结束时间_java怎么获取一天的开始时间和结束时间
标签: public static void main(String[] args) { Calendar c1 = new GregorianCalendar(); c1.set(Calendar. ...
- 瘦客户机为何不瘦反胖?
谈起瘦客户机,相信大家都不会太陌生,但是当大家了解到瘦客户机的各方面硬件配置时,你会发现其实瘦客户机并不如想象中的那么"瘦". 以某知名品牌的瘦客户机为例,你会发现其硬件配置并不比 ...
- 瘦客户机与胖客户机对比
瘦客户机是使用专业嵌入式处理器.小型本地闪存.精简版操作系统的基于PC工业标准设计的小型行业专用商用PC,配置包含专业的低功耗.高运算功能的嵌入式ARM处理器,瘦客户机没有可移除的部件,可以提供比普通 ...
- JAVA通信(二)——实现客户机和服务器通信
前面一篇博客我们简单地理清了JAVA创建服务器,以及客户机连接服务器的流程,今天我们继续往下学习,实现客户机和服务器的通信.由于基本概念我们已经在前一篇博客说清楚了,这里我们就不再进行赘述.(不清楚的 ...
- 并与Lotus Domino 7管理客户机无缝地集成
IBM Domino/Notes及选型考虑 这是两款软件,分别是IBM Domino和IBM Notes,它们共同供一个可以用于电子邮件. Web访问.在线日历和群组日程安排.协同工作区.公告板和新闻 ...
- request对象简介和获取客户机信息
request对象(请求对象)ServletRequest|HttpServletRequest 获取客户机信息getRemoteAddr(*****) 获取IP地址getMethod() (**** ...
- 无盘服务器 安装客户机程序,顺网云服务端和客户端安装
在维护云网站或 APP 端,进行平台账号注册: 访问维护云平台注册页面 访问维护云 App 下载界面 新用户注册完成,系统即自动为您定制专属安装包. 服务端安装 双击服务端 exe 安装程序,输入网吧 ...
最新文章
- annie安装教程与Access is denied解决方法
- python 字符串替换_Python基础教程,第四讲,字符串详解
- 史上最详细 VUE2.0 全套 demo 讲解 基础4(条件渲染)
- 【BZOJ】【1015】 【JSOI2008】星球大战starwar
- 控件加在JAVA的PANEL上,怎样才能充满
- Linux的主动实行措施cron和crontab(1)
- AD18等长线、蛇形线的设置
- Hanselminutes播客247-从敏捷顾问到John Wilger的敏捷团队成员
- html中文字怎么自动排版,CSS网页布局中文字排版九大技巧
- 给读医大的老铁选购电脑
- This application failed to start because it could not find or load the Qt platform plugin “xcb“.
- Intel Me更新
- iOS开发——frame和bounds详解
- 直击招聘程序员面试笔试C语言深度解析,直击招聘 程序员面试笔试C++语言深度解析(直击招聘) pdf epub mobi txt 下载...
- Perl错误处理机制
- 【计算机网络】彻底明白IP地址——计算相关地址
- ULua反射原理——自我理解,有问题请斧正,谢谢!
- 深度强化学习——基本概念(1)
- C#实现的两个淘宝插件源码
- 密码学基础(一)——哈希算法
热门文章
- SAP Pricing的access sequence是如何在循环被处理的
- 在SAP CRM呼叫中心里创建Service Request的实现技术
- SAP CRM和Cloud for Customer的organization unit
- Java Web项目,Android和微信小程序的初始页面配置
- 使用ABAP Push Channel(APC)开发的乒乓球游戏,可双打
- linux ftp命令大全,linuxftp常用命令【图解】
- mysql 开启引擎命令_MySql中启用InnoDB数据引擎的方法
- 小批量梯度下降算法步骤_TensorFlow从0到1 - 6 - 解锁梯度下降算法
- java字符串切割_java字符串常用操作方法(查找、截取、分割)
- call线程起名字_Java线程的5个使用技巧