Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么日期不调整到UTC设置的时间?_Javascript_Date_Time_Utc - Fatal编程技术网

Javascript 为什么日期不调整到UTC设置的时间?

Javascript 为什么日期不调整到UTC设置的时间?,javascript,date,time,utc,Javascript,Date,Time,Utc,打印时钟的时间时,类似的代码会根据选定的时区工作和调整,但这不适用于打印日期。知道为什么吗 它只显示UTC默认时间 <script> function cetDT(){ var now = new Date(); var today = new Date(now.getUTCFullYear(), now.getUTCMonth(), now.getUTCDate(), now.getUTCHours(), now.getUTCMinutes(), now.getUTCS

打印时钟的时间时,类似的代码会根据选定的时区工作和调整,但这不适用于打印日期。知道为什么吗

它只显示UTC默认时间

<script>
    function cetDT(){

var now = new Date();
var today = new Date(now.getUTCFullYear(), now.getUTCMonth(), now.getUTCDate(),  now.getUTCHours(), now.getUTCMinutes(), now.getUTCSeconds());

var day = today.getDate();
var month = today.getMonth();
var year = today.getFullYear();

var anHour = 1000 * 60 * 60;
today = new Date(today.getTime() - anHour * -2);

var hours = today.getHours();
var minutes = today.getMinutes();
var seconds = today.getSeconds();

if (hours >= 12){
meridiem = "";
}
else {
meridiem = "";
}


if (minutes<10){
minutes = "0" + minutes;
}
else {
minutes = minutes;
}

if (seconds<10){
seconds = "0" + seconds;
}
else {
seconds = seconds;
}

document.getElementById("cetDT").innerHTML = (day + '/' + (parseFloat (month) + 1) + '/' + year);

}

cetDT();
</script>

函数cetDT(){
var now=新日期();
var today=新日期(now.getUTCFullYear()、now.getUTCMonth()、now.getUTCDate()、now.getUTCHours()、now.getUTCMinutes()、now.getUTCSeconds());
var day=today.getDate();
var month=today.getMonth();
var year=today.getFullYear();
var anHour=1000*60*60;
今天=新日期(today.getTime()-anHour*-2);
var hours=today.getHours();
var minutes=today.getMinutes();
var seconds=today.getSeconds();
如果(小时数>=12){
梅里迪姆=”;
}
否则{
梅里迪姆=”;
}

如果(分钟您正在使用
now.getUTCDate()
now.getUTCHours()
和类似的,它将获取UTC中的当前日期和时间

要获得本地等效项,您需要查找
now.getDate()
now.getHours()
等。请注意名称中缺少“UTC”

请注意,即使您使用
today=new Date(today.getTime()-anHour*-2)
更新
today
变量,但
today
的首字母是UTC时间。因此,
getTime()
将与UTC相关

要解决此问题,您只需调出UTC时间:

function cetDT() {

  var now = new Date();
  var today = new Date(now.getFullYear(), now.getMonth(), now.getDate(), now.getHours(), now.getMinutes(), now.getSeconds());

  var day = today.getDate();
  var month = today.getMonth();
  var year = today.getFullYear();

  var anHour = 1000 * 60 * 60;
  today = new Date(today.getTime() - anHour * -2);

  var hours = today.getHours();
  var minutes = today.getMinutes();
  var seconds = today.getSeconds();

  if (hours >= 12) {
    meridiem = "";
  } else {
    meridiem = "";
  }


  if (minutes < 10) {
    minutes = "0" + minutes;
  } else {
    minutes = minutes;
  }

  if (seconds < 10) {
    seconds = "0" + seconds;
  } else {
    seconds = seconds;
  }

  document.getElementById("cetDT").innerHTML = (day + '/' + (parseFloat(month) + 1) + '/' + year);

}

cetDT();
函数cetDT(){
var now=新日期();
var today=新日期(now.getFullYear()、now.getMonth()、now.getDate()、now.getHours()、now.getMinutes()、now.getSeconds());
var day=today.getDate();
var month=today.getMonth();
var year=today.getFullYear();
var anHour=1000*60*60;
今天=新日期(today.getTime()-anHour*-2);
var hours=today.getHours();
var minutes=today.getMinutes();
var seconds=today.getSeconds();
如果(小时数>=12){
梅里迪姆=”;
}否则{
梅里迪姆=”;
}
如果(分钟<10){
分钟=“0”+分钟;
}否则{
分钟=分钟;
}
如果(秒<10){
秒=“0”+秒;
}否则{
秒=秒;
}
document.getElementById(“cetDT”).innerHTML=(天+'/'+(月)+1)+'/'+年);
}
cetDT();
请注意,还有一些代码是完全冗余的,例如
else{seconds=seconds;}
。您可能希望研究重构此代码;)


希望这有帮助!:)

您现在使用的是
now.getUTCDate()
now.getUTCHours()
,它将获取UTC中的当前日期和时间。
getDate
getHours
等将获取时区相关时间。但我稍后也会用“今天=新日期(今天.getTime()-anHour*-2)”来修改它.或者至少我在尝试…有什么建议吗?这段代码有很多地方不对劲。你到底想做什么?是的,这很混乱,但稍后会被澄清。这是为了我自己的一个项目:)请理解StackOverflow的任务是为广大受众提供有用的问答对。这不是dumpin上面的代码甚至没有输出所询问的变量。你也没有显示任何研究成果。在它当前的形式下,它很可能是(也应该是)否决。请阅读帮助中心文档中的和。因此,如果我正确的话,在交换UTC时间时,我必须指定一个时区。我很抱歉听起来像一个初学者,但我一直在研究这段代码,我不知道替换什么来更改时区。尽管问题很糟糕,但请注意它会最好始终使用基于UTC的函数,而不是基于本地时间的函数。您是对的,它们需要一致地使用,但本地时间函数将始终采用本地时区的行为,包括任何有效的夏令时规则。因为OP似乎希望按从UTC到UTC的固定小时数,应该使用UTC作为基准。@ebkod-您甚至不显示时区。您显示的是一个固定偏移量
-2
。这与时区非常不同。请阅读。另请阅读:。关于UTC偏移量,我认为OP试图在自己的时区中计算时间差。是的,天节省开支之类的事情可能会引起一些问题,对于一个拥有多个国家/地区用户的网站来说,最好始终使用UTC时间。我完全同意Matt的观点--
-2
是对
新日期()的任意偏移量。
。只需对其进行一些研究,您就会很快将其记录下来:)