この記事では主にjavascript+phpでユーザーのタイムゾーンに応じて現地時間を表示する方法を実装する方法とその例を紹介しますJavaScript がクライアントのタイムゾーンを取得し、サーバー側の PHP とやり取りする方法の分析。スキルには特定の参考値があります。必要な友達は参照できます。
次のコードは、クロスタイムゾーン アプリケーションで使用されます。これは、以前に書かれたコードの一部です。
サーバーは、関連する時間設定を GMT 時間の形式で保存し、顧客の習慣に準拠するために、クライアントは顧客のタイムゾーンに従ってそれを表示する必要があります。
1. JavaScript コードは次のとおりです。
?
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
|
window.onload = function() {
//TODO begin はログインユーザーのタイムゾーンを処理します //ログインしているユーザーのタイムゾーンとGMTタイムゾーンの違いを取得します var exp = 新しい日付(); var gmtHours = -(exp.getTimezoneOffset()/60); setCookie('customer_timezone',gmtHours,1); //夏時間かどうかを判断する date = exp.format('yyyy-MM-dd HH:mm:ss'); if(inDaylightTime(日付)){ setCookie('inDaylightTime',1,1); } } //クッキーを設定する 関数 setCookie(c_name,value,expiredays){ var exdate=新しい日付() exdate.setDate(exdate.getDate()+expiredays) document.cookie=c_name+ "= +エスケープ(値)+ ((expiredays==null) ? "" : ";expires="+exdate.toGMTString()) } //時間が東半球か西半球かを判断します 関数はEastEarthTime(newDate) { var dj= newDate.getGMTOffset(false); if (dj.indexOf("-") == -1){ true を返す; } 他 { false を返す; } } //夏時間かどうか DaylightTime(日付)関数{ var start = new Date(date.getTime()); start.setMonth(0); start.setDate(1); start.setHours(0); start.setMinutes(0); start.setSeconds(0); var middle = 新しい日付(start.getTime()); middle.setMonth(6); // 年の初めと中旬の時差が同じ場合、この国には夏時間が無いとみなされます if ((middle.getTimezoneOffset() - start.getTimezoneOffset()) == 0) { false を返す; } var マージン = 0; if (this.isEastEarthTime(日付)) { マージン = middle.getTimezoneOffset(); } 他 { margin = start.getTimezoneOffset(); } if (date.getTimezoneOffset() == マージン) { true を返す; } false を返す; } //終了
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
//24 時間以内に GMT から現地時間に変換します 関数 gmt_to_local($time = '', $dst = FALSE){ //JavaScript は Cookie を設定し、PHP は値を受け取ります if (isset($_COOKIE["customer_timezone"])){ $timezone = $_COOKIE["customer_timezone"]; }その他{ $タイムゾーン = 0; } if ($time == ''){ 今すぐ戻る(); } //時間処理 $time += $timezone * 3600;
//夏時間かどうか if(isset($_COOKIE["inDaylightTime"]) && $_COOKIE["inDaylightTime"]==1) { $dst = TRUE; } if ($dst == TRUE){ $時間 += 3600; } 日付を返す("H:i",$time); } |
この記事で説明した内容が皆様の PHP プログラミング設計に役立つことを願っています。