Javascript 在JS时代转换上难倒了
时代 1265997351408 是 2010年2月12日星期五12:55:51 GMT-0500(美国东部时间) 我试图将其写成: 2010年2月12日 但是我得到了:11月10日42087 我做错了什么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"
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)