2016-12-27 14 views
1

ここでは、の日付をUTCに変換し、同じUTCの日付を新しい日付としてに変換しようとしています。問題は、私が渡したのと同じ日付を取得していないということです。ここに私のここfiddleJavaScriptの日付UTCの問題

私は渡しています日付が新しい日付を使用して、通常の日に、その後、UTCは、UTC形式に変換し、2015年11月2日すなわち2015年11月2日ですが、今では私に戻っている11/1/2015 ie 1 November 2015

ありがとうございます。 getDay()方法は、月の日を返しません

var myDate = '11/2/2015'; 
var myDateObj = new Date(myDate); 
console.log('my Date is \n' + myDateObj); 

var tempDate = Date.UTC(myDateObj.getFullYear(),myDateObj.getMonth(),myDateObj.getDay()); 
var utcDate = new Date(tempDate); 

console.log('my Date after utc \n' + utcDate); 
+1

次のポストを確認しました。 http://stackoverflow.com/questions/948532/how-do-you-convert-a-javascript-date-to-utc – fubbe

+0

は日付があまりにも異なっていますか? –

+2

11月2日か2月11日は '11/2/2015'ですか?混乱を避けるために '2015-02-11'を使用してください。 –

答えて

1

はそう代わりにそのjs Date.getDay() でより多くを参照してください、あなたがgetDate()により取得することができ、月の日を渡す必要がgetDate()

で詳細を参照

var myDate = '11/2/2015'; 
 
var myDateObj = new Date(myDate); 
 
console.log('my Date is \n' + myDateObj); 
 

 
var tempDate = Date.UTC(myDateObj.getFullYear(),myDateObj.getMonth(),myDateObj.getDate()); 
 
var utcDate = new Date(tempDate); 
 
console.log('my Date after utc \n' + utcDate);

0

私は

を使用します

myDateObj.getDate()

、それが正常に動作し、今確認してくださいされています。

var myDate = '11/02/2015'; 
var myDateObj = new Date(myDate); 
console.log('my Date is \n' + myDateObj); 
console.log('my Date is \n' + myDateObj.getDate()); 

var tempDate = Date.UTC(myDateObj.getFullYear(),myDateObj.getMonth(),myDateObj.getDate()); 
var utcDate = new Date(tempDate); 

console.log('my Date after utc \n' + utcDate); 
0

、それは最初のミリ秒単位のように長い値に日付を変換ので、これはこれまでに、次に起こるので、11月2日0時00分00秒、それはのように11月1日23時30分○○秒を取ることができますので、お時間を与えることができますまた、次のように日中:

var myDate = '11/2/2015 23:00:00'; 
var myDateObj = new Date(myDate); 
console.log('my Date is \n' + myDateObj); 

var tempDate = Date.UTC(myDateObj.getFullYear(),myDateObj.getMonth(),myDateObj.getDay(),myDateObj.getHours(),myDateObj.getMinutes(),myDateObj.getSeconds()); 
var utcDate = new Date(tempDate); 
console.log('my Date after utc \n' + utcDate); 
0

ここで私は、UTCに日付を変換しようとしていますし、新しい日付と同じUTCの日付を変換します。しかし、問題は私が渡した同じ日付を取得していないということです。

すべてのDateオブジェクトは1つのUTC時間値を使用するため、それらはすべて本質的にUTCなので、それらをUTCに「変換する」必要はありません。

var myDate = '11/2/2015'; 
var myDateObj = new Date(myDate); 
console.log('my Date is \n' + myDateObj); 

あなたは、文字列を解析するためにDateコンストラクタ(またはDate.parse)を使用し、小さな関数を書くか、ライブラリー(例えばmoment.jsfecha.js)を使用しないでください。

(のgetDategetDayを置き換える)次

var tempDate = Date.UTC(myDateObj.getFullYear(), 
         myDateObj.getMonth(), 
         myDateObj.getDate()); 

は、日付をコピーするだけの長い道です。はるかに簡単に使用する:

var tempDate = new Date(myDateObj); 

あなたはUTCの日付値を取得したい場合は、のようなmyDateObj.getUTCHoursmyDateObj.getUTCMinutes UTCメソッドを使用、など

あなたはUTCの日付と時刻を取得したい場合は、使用して値を返すtoISOStringを使用するオフセット0000:

// Create a Date for 2 November, 2016 
 
var date = new Date(2016,10,2); 
 

 
// Copy it 
 
var dateCopy = new Date(date); 
 

 
// Show local date and time 
 
console.log('Local date and time:\n' + dateCopy.toString()); 
 

 
// Show UTC date and time 
 
console.log('UTC date and time :\n' + dateCopy.toISOString()); 
 

 
// Show UTC Date only 
 
console.log('UTC date only  :\n' + dateCopy.toISOString().substr(0,10));