2016-04-14 19 views
0

私はAndroid Appを持っていて、特定の日時(すべてローカル)で通知を表示したかったのです。しかし、私はJSONスルーサーバーからフェッチこのようなUTC形式を使用する場合:JavaScriptのローカル日付と時刻を指定する方法

2016-04-14T11:30:00Z 

をメッセージは、この機能を使って、世界中の同じ時刻に表示されます:私が欲しいもの

var mTime = new Date(element.dateNtime); 

がにあります各地の時間の午前11時30分にメッセージを表示してください。英国の午前11時30分と同じように、すべてのユーザーが通知を受け取りますが、米国のユーザーは5時間後、つまり現地時間11:30(ESTなど)の通知を受け取ります。

誰でもお気軽にお問い合わせください。

============= UPDATE ================

私は私が解決策を見つけたと思うが、からその下の答えは、その質問があまりにも明確でないか、理解されていないかのように見えます。このシナリオは次のとおりです。

a。私のCordovaアプリは、携帯電話でユーザーによって開かれています。 b。アプリケーションは起動時に "2016-04-14T11:30:00Z"の形式で文字列の日付とメッセージをサーバーから読み込みます。したがって、新しいDate()関数を使用して現在の日付を取得することについて疑問はありません。 c。これに基づいて、アプリケーションはCordovaの通知プラグインを使用して、指定された日時の通知を設定します。 d。時刻が到来すると通知がポップアップする

解決策は、Date.parse()関数に加えて、日付 ​​'' Wed、1995年8月9日00:00:00 ''にNON-ISO形式を使用することです。上記の例を使用してコードがなります:

var mTime = Date.parse(element.dateNtime); 

日付がこの形式で提供されている場合(「水、1995年8月9日午後12時00分00秒」)変数のmtimeがまったく同じ値が含まれます。ただし、datetimeがISO形式(2016-04-14T11:30:00Z)で提供されている場合、mTimeにはユーザーのLocaleに変換された時刻が含まれます。あなたはPHPサーバーを使用している場合は

答えて

0

あなたは簡単にコードの下に使用することによって達成することができます:

$serverdate = date("d m Y"); 
$indiantime = date('d/m/Y h:i:s A', time()+19800); 

ここで変数「serverdate」は、サーバの現在の日付を返し、変数「インドの時間は、」インドのような時間を保存します「X」は、その5.30インドの場合、GMTの差である場合には適切なゾーンに時間を変換するための標準時間


X * 60 * 60この式を使用します ので、5.5 * 60 * 60 = 19800

+0

更新された質問n回答 – Anjum

0

ただ、クライアントのローカル時間で新しいDateオブジェクトを作成する新しいDateオブジェクト

var now = new Date(); 

をインスタンス化します。 8:30 AMのように表示するには、

var time = new Date().toString("hh:mm tt"); 

を使用するあなたは時間帯のためnew Date().getTimezoneOffset()/60を使用することができます。ユーザーのロケールを使用して日付を表示する方法もあります(toLocaleString())。

+0

が更新されました。 – Anjum

関連する問題