2016-12-27 139 views
1

這裏我試圖將一個日期轉換爲UTC,然後將相同的UTC日期轉換爲新的日期。但問題是我沒有得到我通過的日期。這裏是我的fiddleJavascript日期UTC問題

在這裏,我通過日期2015年11月2日即2 2015年11月,然後將其轉換爲UTC格式,然後使用新日期 UTC正常日期,但現在它返回我11/1/2015即2015年11月1日

在此先感謝。

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日?使用'2015-02-11'來消除混淆。 –

回答

1

getDay()方法不返回該月的一天多見於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日00:00:00,它可以採取如11月1日23:30:00,所以你可以給時間也是在日期如下:

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對象都使用一個UTC時間值,所以它們都是固有的UTC,並且不需要將它們「轉換」爲UTC。

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

你不應該使用日期構造函數(或Date.parse)來解析字符串,寫一個小功能或使用庫(例如moment.jsfecha.js)。

(與替換getDay GETDATE)以下:

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

是複製的日期的只是一個冗長的方式。簡單得多的使用方法:

var tempDate = new Date(myDateObj); 

如果你想獲得UTC日期值,使用UTC的方法,如myDateObj.getUTCHoursmyDateObj.getUTCMinutes等。

如果你想獲得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));