表示日時をユーザーのロケールの形式は、時間のオフセット
-
01-07-2019 - |
質問
したいサーバーにいつもと日世界標準時間で、HTML、JavaScriptのクライアントサイトに変換するユーザーの地域タイムゾーン.
ボーナスまでの出力を生成することができ、ユーザーのロケールの日付形式です。
解決
るようにfoolproofめに、UTCの日時が新しい Date
オブジェクトを使用し setUTC…
方法を設定して日付/時刻ます。
その後、様々な toLocale…String
方法を提供す局所的な出力に出力します。
例:
// This would come from the server.
// Also, this whole block could probably be made into an mktime function.
// All very bare here for quick grasping.
d = new Date();
d.setUTCFullYear(2004);
d.setUTCMonth(1);
d.setUTCDate(29);
d.setUTCHours(2);
d.setUTCMinutes(45);
d.setUTCSeconds(26);
console.log(d); // -> Sat Feb 28 2004 23:45:26 GMT-0300 (BRT)
console.log(d.toLocaleString()); // -> Sat Feb 28 23:45:26 2004
console.log(d.toLocaleDateString()); // -> 02/28/2004
console.log(d.toLocaleTimeString()); // -> 23:45:26
一部の参考文献:
他のヒント
新規プロジェクトで使用 moment.js
この問いには古いので、 moment.js はなかったその時が新しいプロジェクトでは、簡単のような仕事をするようになったころがいっぱいあるんです!
するのがベストです 構文解析 お日付文字列からのUTCとして次のように作成 ISO-8601 対応する文字列は、サーバへの一貫したすべてのブラウザ):
var m = moment("2013-02-08T09:30:26Z");
その利用 m
お申し込み,moment.js デフォルトのタイムゾーン表示。があり 多くのフォーマットの日付と時間の値 または抽出の一部です。
きものフォーマットの瞬間にオブジェクトのユーザーロケールのようになります:
m.format('LLL') // Returns "February 8 2013 8:30 AM" on en-us
に変換するmoment.js オブジェクトへの異なるタイムゾーン(もの地方にも日本時間)にする必要がありまし moment.js タイムゾーンの拡張.このページでも一部の例では、インターネットはモバイルを利用します。
利用できる new Date().getTimezoneOffset()/60
のtimezone.もあり toLocaleString()
方法を表示する日付をユーザーのロケールです。
このリスト: 作業日
あなたは、dateオブジェクトを構築し、このスニペットの変換:
の関数は世界標準時間形式の日付オブジェクトやフォーマット文字列になります。
が必要になります Date.strftime
試作品です。
function UTCToLocalTimeString(d, format) {
if (timeOffsetInHours == null) {
timeOffsetInHours = (new Date().getTimezoneOffset()/60) * (-1);
}
d.setHours(d.getHours() + timeOffsetInHours);
return d.strftime(format);
}
JSありません簡単なクロスプラットフォームなフォーマットを現地の日付時間外に変換する各物件あげつつあると考えています。
こちらはquick hackで使っていくの地域YYYY-MM-DD.ご注意このhackとして最終日には、正しいタイムゾーンもありがとうごてを無視するタイムゾーン).がっかりしていmoment.js.
var d = new Date();
d = new Date(d.getTime() - d.getTimezoneOffset() * 60000)
var yyyymmdd = t.toISOString().slice(0,0);
// 2017-05-09T08:24:26.581Z (but this is not UTC)
開始。getTimezoneOffset()を返しますタイムゾーン-オフセット分、d.getTime()は、そのためのx60,000.
こんどろ風mikiモデルを作ってみて使用過去のプロジェクト:
var myDate = new Date();
var tzo = (myDate.getTimezoneOffset()/60)*(-1);
//get server date value here, the parseInvariant is from MS Ajax, you would need to do something similar on your own
myDate = new Date.parseInvariant('<%=DataCurrentDate%>', 'yyyyMMdd hh:mm:ss');
myDate.setHours(myDate.getHours() + tzo);
//here you would have to get a handle to your span / div to set. again, I'm using MS Ajax's $get
var dateSpn = $get('dataDate');
dateSpn.innerHTML = myDate.localeFormat('F');
の .getTimezoneOffset()
方法に報告されたタイムゾーンオフセットに分数"西"からは、GMT/UTCのタイムゾーン、オフセット値が負う一つは一般的になれます。(例、ニューヨーク時間が報告されて+240分または+4時間)
を取得し通常のタイムゾーンオフセットに時間を使用する必要があり:
var timeOffsetInHours = -(new Date()).getTimezoneOffset()/60
重要な内容:
注この夏時間が織り込の結果でこの方法であり、 時間 オフセットは実際の地理的 タイムゾーン オフセットされます。
日付からPHPのコードを使ってこのようになっ..
function getLocalDate(php_date) {
var dt = new Date(php_date);
var minutes = dt.getTimezoneOffset();
dt = new Date(dt.getTime() + minutes*60000);
return dt;
}
呼ぶことができますこのような
var localdateObj = getLocalDate('2015-09-25T02:57:46');
私はミックスの答えをこれまでに追加でらないといけなかったので、読みすべてをまたがる表示、日付時刻文字列からdbユーザーの地域タイムゾーン形式です。
のdatetimeの文字列からpython/django dbのフォーマット:2016-12-05T15:12:24.215Z
信頼性の検出のブラウザの言語をJavaScriptではなさそう仕事のすべてのブラウザで参照 JavaScriptを検出するブラウザの言語選好くまのブラウザの言語から、サーバーにコピーします。
Python/Django:送信要求をブラウザの言語をコンテキストのパラメータ:
language = request.META.get('HTTP_ACCEPT_LANGUAGE')
return render(request, 'cssexy/index.html', { "language": language })
HTML:しない、隠れた入力:
<input type="hidden" id="browserlanguage" value={{ language }}/>
JavaScript:値を取得す隠された入力例:en-GB、en-US;q=0.8en;q=0.6/その第一言語のリストによってのみ交換して正規表現
const browserlanguage = document.getElementById("browserlanguage").value;
var defaultlang = browserlanguage.replace(/(\w{2}\-\w{2}),.*/, "$1");
JavaScript:に変換されたdatetimeフォーマットした:
var options = { hour: "2-digit", minute: "2-digit" };
var dt = (new Date(str)).toLocaleDateString(defaultlang, options);
その結果、(ブラウザの言語はen-gb):05/12/2016,14:58
のん々を【時間表示="llll"datetime="UTC時間"/]グ、javascript(jquery)構文解析表示するためのユーザーの時間。
http://momentjs.com/ ます。js
表示に時間がります。
を使用できるのは、報告のタイムゾーンオフセットからGMT分:
new Date().getTimezoneOffset();
注意:-この機能を返し負の番号です。
getTimeZoneOffset()およびtoLocaleStringは本日、必要なリアルタイムゾーンの支援、 mdeのTimeZone.js.
がありますがオプションに答え この質問
// new Date(year, monthIndex [, day [, hours [, minutes [, seconds [, milliseconds]]]]])
var serverDate = new Date(2018, 5, 30, 19, 13, 15); // just any date that comes from server
var serverDateStr = serverDate.toLocaleString("en-US", {
year: 'numeric',
month: 'numeric',
day: 'numeric',
hour: 'numeric',
minute: 'numeric',
second: 'numeric'
})
var userDate = new Date(serverDateStr + " UTC");
var locale = window.navigator.userLanguage || window.navigator.language;
var clientDateStr = userDate.toLocaleString(locale, {
year: 'numeric',
month: 'numeric',
day: 'numeric'
});
var clientDateTimeStr = userDate.toLocaleString(locale, {
year: 'numeric',
month: 'numeric',
day: 'numeric',
hour: 'numeric',
minute: 'numeric',
second: 'numeric'
});
console.log("Server UTC date: " + serverDateStr);
console.log("User's local date: " + clientDateStr);
console.log("User's local date&time: " + clientDateTimeStr);
変換の日付を現地の日用toLocaleDateString()メソッドがあります。
var date = (new Date(str)).toLocaleDateString(defaultlang, options);
変換時間は現地時間利用toLocaleTimeString()メソッドがあります。
var time = (new Date(str)).toLocaleTimeString(defaultlang, options);
なのかなロケールが当サイトでは、以下のブラウザクライアント側の技術です。
usersLocalTime = new Date();
してクライアントの日時においての報告によるブラウザ、コンピュータにおいてもます。で生じているものと考えられるなど、サーバの間での対応と、いくつかの簡単な数学のように-timateを相殺するものとする。