首页 > php教程 > php手册 > 正文

javascript+php实现根据用户时区显示当地时间的方法

php中文网
发布: 2016-06-06 20:06:54
原创
1588人浏览过

这篇文章主要介绍了javascript+php实现根据用户时区显示当地时间的方法,实例分析javascript获取客户端时区及与服务器端php交互的技巧,具有一定参考借鉴价值,需要

本文实例讲述了javascript+php实现根据用户时区显示当地时间的方法。分享给大家供大家参考。具体如下:

在跨时区应用中会用到下面代码,,这是以前写的一段代码。

服务器保存相关时间配置,保存形式为GMT时间,客户端需要根据客户所在时区做相应显示,以符合客户习惯。

1. JavaScript代码如下:

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代码:

LibLib AI
LibLib AI

中国领先原创AI模型分享社区,拥有LibLib等于拥有了超多模型的模型库、免费的在线生图工具,不考虑配置的模型训练工具

LibLib AI 647
查看详情 LibLib AI

立即学习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); }

希望本文所述对大家的php程序设计有所帮助。

相关标签:
PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号