2016-04-27 24 views
2

現在の日付をUTC形式で取得しようとしています。だから私はそれを行うことができますが、私が悩んでいるのは、現在の「System Date」をチェックして結果を返すことです。システム日付を取得するのではなく、UTC形式で具体的に必要なので、そのようなことは起こりたくありません。javascriptを使用して現在のシステム日付に関係なくUTC形式の日付を取得するにはどうすればよいですか?

また、結果を出力した形式は、変更を加えずに欲しいものです。どんな提案も大きな助けになるでしょう。ここで

は私のコードです:

var now = new Date(); 
var currentDate; 
var date = (new Date(now) + '').split(' '); 
date[0] = date[0] + ','; 
date[2] = date[2] + ','; 
currentDate = [date[0], date[1], date[2], date[3]].join(' '); 
return currentDate; 

このコードはたとえば+ -12の時間差をどこか別の場所で実行されている場合は水、Apr26、2016年には、日付がして、このシステムの日付となりますので、これを返します私が望んでいないUTC。

+1

UTCはフォーマットではありません。[* time standard *](http://www.timeanddate.com/time/aboututc.html)です。唯一の標準化された日付書式は* toISOString *ですが、他の書式は実装に依存します。小さなフォーマットライブラリは、[* date-format.js *](https://github.com/barbir/js-date-format/blob/master/js/date-format.js)、またはそれよりはるかに大きいものです[* moment.js *](http://momentjs.com/)のようなものです。あなたは書式を指定しておらず、現在のシステムの日付が合っていない理由もありません。 – RobG

答えて

0

momentjsを調べましたか?日付を簡単に操作できる日付オブジェクトラッパーです。提供されているutc()関数を使用してください。

var moment = require("moment"); 

var utcNow = moment().utc(); 

console.log(utcNow); 

この意志出力電流UTC日付

+1

いいえ、いいえ、いいえ。これは、7年前のStackOverflowのすべてのJavaScript質問と同様です。ここでは、すべての質問にjQueryでこれを行う方法が回答されています。ちょうどジャバスクリプトを学ぶ。 MomentJSは素晴らしいlibですが、それは半分のMBのJSがあなたのユーザーのためにダウンロードし、解析することを意味します。 ES2015でプロジェクト全体を記述し、使用されるビットのみを含むロールアップなどのバンドラを使用する場合は、これを行う必要があります。 – oligofren

+2

@ oligofren-そして、私はそのようなコメントを書く唯一の人だと思った!もちろん、 'new Date()。toISOString()'はライブラリなしでほとんど同じことをします。 – RobG

+0

申し訳ありませんが、私も新しいです!私が知っていることだけでコミュニティに参加しようとしています。今までのところ私は日付を使って作業していましたが、大きなプロジェクト全体でそれらを使用しなければならなかったので、役に立つライブラリを含めることは決して問題ではありませんでした。ヒントをありがとう、私は次回覚えています! – Cameron637

0

私は日付のインスタンス上toISOString()メソッドを呼び出すことをお勧めします:http://momentjs.com/docs/#/manipulating/utc/

NPMを通じて瞬間をインストールした後、ここではサンプルコードがどのように見えるかです。ここでは、コード

var now = new Date, 
    isoNow = now.toISOString(); 
console.log(now, isoNow); // Wed Apr 27 2016 10:50:29 GMT+0530 (IST) "2016-04-27T05:20:29.146Z" 

は、あなたがこれをチェック、あなたが言及した出力を維持する必要があるので、もしあなたがここに

+0

彼は書式も維持したかった。 – oligofren

1

普遍的な時間を持っています:

var dateString = new Date().toUTCString().split(' '); 
return dateString[0] + " " + dateString[2] + dateString[1] + ", " + dateString[3]; 

日付のためにいくつかの他の有用なUTCの方法がありますhere

+0

[* toUTCString *](http://www.ecma-international.org/ecma-262/6.0/#sec-date.prototype.toutcstring)が – RobG

+0

["戻り値の形式はプラットフォームによって異なる場合があります。最も一般的な戻り値はRFC-1123形式の日付スタンプで、これはRFC-822のわずかに更新されたバージョンです日付スタンプ。]](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toUTCString) – oligofren

+1

@ oligofren-MDNは公開ウィキであり、言語権限ではありませんECMA-262 *(http://www.ecma-international.org/ecma-262/6.0/#sec-date.prototype.toutcstring)(**の**権限): "* Stringの内容は実装に依存しますが、UTC *で人間が読める形式でこの時間値を表現することを意図しています。 " ISO 8601の拡張形式を終了します(ただし、非標準的な注記にあります)。 – RobG

2

ブラウザ間でフォーマットの一貫性を維持する唯一の方法は、Date#getUTC*関数を使用して小さなユーティリティ関数を作成するか、これを行うライブラリを使用することです。私は前者と一緒に行くだろう。

function getUTCDateString(){ 
    var d = new Date(); 
    var days = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']; 
    var month = ['Jan', 'Feb', 'Mar', 'April', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']; 

    return (
     days[d.getUTCDay()-1] 
     + ', ' + month[d.getUTCMonth()] 
     + d.getUTCDate() 
     + ', ' + d.getUTCFullYear() 
     ); 
} 

あなたが任意のローカライズされたプログラミングのことを行う場合はすぐに複雑化し、より理にかなって言及したLIBSの一部に持ち込む:あなたはこのようなものを使用することができます。

関連する問題