Javascript日期UTC问题

Javascript日期UTC问题,javascript,date,datetime,utc,Javascript,Date,Datetime,Utc,这里我尝试将日期转换为UTC,然后将相同的UTC日期转换为新日期。但问题是,我没有得到我过去的那个日期。这是我的 我在这里传递日期2015年11月2日,即2015年11月2日,然后将其转换为UTC格式,然后使用新日期将UTC转换为正常日期,但现在它返回给我2015年11月1日,即2015年11月1日 提前谢谢 var myDate = '11/2/2015'; var myDateObj = new Date(myDate); console.log('my Date is \n' + myDa

这里我尝试将日期转换为UTC,然后将相同的UTC日期转换为新日期。但问题是,我没有得到我过去的那个日期。这是我的

我在这里传递日期2015年11月2日,即2015年11月2日,然后将其转换为UTC格式,然后使用新日期将UTC转换为正常日期,但现在它返回给我2015年11月1日,即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);
getDay()
方法不返回月份的日期请参阅 因此,您需要通过
getDate()
查看

var myDate='11/2/2015';
var myDateObj=新日期(myDate);
console.log('我的日期是\n'+myDateObj);
var tempDate=Date.UTC(myDateObj.getFullYear()、myDateObj.getMonth()、myDateObj.getDate());
var utcDate=新日期(临时日期);
console.log('我的日期在utc\n'+utcDate之后)我用过

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);

之所以会出现这种情况,是因为它首先将日期转换为以毫秒为单位的长值,然后再转换为日期,因此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);
在这里,我尝试将一个日期转换为UTC,然后将相同的UTC日期转换为新日期。但问题是,我没有得到我过去的那个日期

所有日期对象都使用一个UTC时间值,因此它们本质上都是UTC,不需要将它们“转换”为UTC

var myDate = '11/2/2015';
var myDateObj = new Date(myDate);
console.log('my Date is \n' + myDateObj);
您不应该使用日期构造函数(或Date.parse)来解析字符串、编写小函数或使用库(例如)

以下内容(将getDay替换为getDate):

这只是复制日期的一种冗长方式。使用起来简单得多:

var tempDate = new Date(myDateObj);
如果要获取UTC日期值,请使用UTC方法,如myDateObj.getUTCHours、myDateObj.getUTCMinutes等

如果要获取UTC日期和时间,请使用返回偏移量为0000的值的:

//创建2016年11月2日的日期
var日期=新日期(2016年10月2日);
//抄写
var dateCopy=新日期(日期);
//显示本地日期和时间
log('本地日期和时间:\n'+dateCopy.toString());
//显示UTC日期和时间
log('UTC日期和时间:\n'+dateCopy.toISOString());
//仅显示UTC日期

log('仅UTC日期:\n'+dateCopy.toISOString().substr(0,10))您是否查看了以下帖子。日期是否太不一样?是2015年11月2日还是2月11日?使用
2015-02-11
消除混淆。
var tempDate = new Date(myDateObj);