Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/383.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 在JS时代转换上难倒了_Javascript - Fatal编程技术网

Javascript 在JS时代转换上难倒了

Javascript 在JS时代转换上难倒了,javascript,Javascript,时代 1265997351408 是 2010年2月12日星期五12:55:51 GMT-0500(美国东部时间) 我试图将其写成: 2010年2月12日 但是我得到了:11月10日42087 我做错了什么 function makeHumanDate(epoch) { var theDate = epoch * 1000 var months = new Array(13); months[0] = "January"; months[1] = "February"

时代 12659973514082010年2月12日星期五12:55:51 GMT-0500(美国东部时间)

我试图将其写成: 2010年2月12日

但是我得到了:11月10日42087

我做错了什么

function makeHumanDate(epoch) {
   var theDate = epoch * 1000
   var months = new Array(13);
   months[0]  = "January";
   months[1]  = "February";
   months[2]  = "March";
   months[3]  = "April";
   months[4]  = "May";
   months[5]  = "June";
   months[6]  = "July";
   months[7]  = "August";
   months[8]  = "September";
   months[9]  = "October";
   months[10] = "November";
   months[11] = "December";
   var d           = new Date(theDate);
   var monthnumber = d.getUTCMonth();
   var monthname   = months[monthnumber];
   var monthday    = d.getUTCDate();
   var year        = d.getFullYear();
   if(year < 2000) { year = year + 1900; }
   var dateString = monthname +
                    ', ' +
                    monthday +
                    ' ' +
                    year;
   // Goal is: February, 12 2010
   return dateString;
}
函数makeHumanDate(历元){
var theDate=历元*1000
var月数=新阵列(13);
月[0]=“一月”;
月[1]=“2月”;
月[2]=“三月”;
月[3]=“4月”;
月[4]=“五月”;
月[5]=“6月”;
月[6]=“7月”;
月[7]=“8月”;
月[8]=“9月”;
月[9]=“10月”;
月[10]=“11月”;
月[11]=“12月”;
var d=新日期(日期);
var monthnumber=d.getUTCMonth();
var monthname=月[月数];
var monthday=d.getUTCDate();
var year=d.getFullYear();
如果(年份<2000){year=year+1900;}
var dateString=monthname+
', ' +
蒙蒂+
' ' +
年份;
//目标是:2010年2月12日
返回日期字符串;
}
我知道这有点傻,但我已经被困了一段时间了。请帮忙


谢谢

在示例代码中,您不需要将
epoch
乘以1000-如果您将其去掉,它将按预期工作:)

一点代码清理

function makeHumanDate(epoch) {
   var months = ["January",
                 "February",
                 "March",
                 "April",
                 "May",
                 "June",
                 "July",
                 "August",
                 "September",
                 "October",
                 "November",
                 "December"],
       d = new Date(epoch),
       month = months[d.getUTCMonth()],
       day = d.getUTCDate(),
       year = d.getFullYear();

   // not needed as getFullYear returns the full year in 4 digits
   //if( year < 2000 ) year += 1900; 

   return month + ', ' + day + ' ' + year;
}
函数makeHumanDate(历元){
var月数=[“一月”,
“二月”,
“三月”,
“四月”,
“五月”,
“六月”,
“七月”,
“八月”,
“9月”,
“十月”,
“11月”,
“12月”],
d=新日期(历元),
月=月[d.getUTCMonth()],
day=d.getUTCDate(),
year=d.getFullYear();
//不需要,因为getFullYear以4位数字返回全年
//如果(年份<2000)年份+=1900;
返回月份“+”,“+天“+”+年;
}

您的代码很好,但输入被破坏。如果我使用 我得到了和你一样的结果


您的时间戳似乎需要除以1000才能回到合理的帧中,然后我才能得到正确的结果。

只是一些未经请求的建议。您可以这样定义月份数组
var months=['一月','二月','三月','四月','五月','六月','七月','八月','九月','十月','十一月','十二月']我唯一需要更改的是日期(epoch/1)。谢谢你把我解开。如果你需要更改为
epoch
,那么它是字符串吗?您可以在传入之前将其解析为int,或者在
epoch
此处使用一元运算符
+
-
新日期(+epoch)