日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

php读取客户机本地时间,PHP如何获取客户端时区以及准确显示所在地时间

發布時間:2023/12/19 php 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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如何获取客户端时区以及准确显示所在地时间的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。