this.D = new Date(1433760825 * 1000);
this.NewD = this.D.getHours();
D =“2015-06-08T10:53:45.000Z” - 这很好,这是我期待得到的。 但是......但......新的结果是11而不是10.为什么???
谢谢!
答案 0 :(得分:0)
使用这样的值实例化Date对象时,您将获得基于UTC的日期。来自MDN:
整数值,表示自1以来的毫秒数 1970年1月00:00:00 UTC(Unix Epoch)。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date
当您随后调用getHours()方法时,您将获得当地时区的小时数。
所以对你的例子来说:
var sampleDate = new Date(1433760825 * 1000);
var hours = sampleDate.getUTCHours();
alert(sampleDate);
alert(this.hours);

应该得到你想要的结果。
答案 1 :(得分:0)
创建DateObject时,如果尝试打印它,它将根据UTC打印日期时间。但是当你执行getHours()属性时,它会告诉你根据你自己的当地时区传递的小时数。
(new DateTime()).getHours()
这将根据您的时区返回(UTC +偏移)小时数。
答案 2 :(得分:-1)
快速点几点:
不要使用单个字符变量名,也不要大写 如果你这样做
D不等于您输入的日期。
新的日期(值)期待一个整数而你正在给它 大于整数的东西。所以它是默认的 当前时间。
尝试使用DateString或本文档中描述的其他方法: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date