我创建了一个Javascript逻辑来从一些值中检索日期和时间。
最初,我解析了DateTime,将其转换为字符串,然后拆分字符串并检索Date。
像那样,我检索了解析的时间,并至少连接在一起(新日期+新时间)。
我试图将其转换为日期,现在当我提醒它时,它会显示无效日期。我想像这样显示新创建的日期。
var sampDate=新日期();alert(sampDate);
我不擅长解释,所以我把我的代码上传到fiddle和这里。
请看一下JSFiddle。下面是我所做的。请用详细的描述指出我做错了什么。任何帮助都将不胜感激。
JSFIDDLE:http://jsfiddle.net/5csge/
var date = 1745488627000;
var parsedDate = new Date(parseInt(date, 10)).toString();
var splitDate = parsedDate.split(" ");
var currentMonth;
switch (splitDate[1]) {
case "Jan":
currentMonth = 1;
break;
case "Feb":
currentMonth = 2;
break;
case "Mar":
currentMonth = 3;
break;
case "Apr":
currentMonth = 4;
break;
case "May":
currentMonth = 5;
break;
case "Jun":
currentMonth = 6;
break;
case "Jul":
currentMonth = 7;
break;
case "Aug":
currentMonth = 8;
break;
case "Sep":
currentMonth = 9;
break;
case "Oct":
currentMonth = 10;
break;
case "Nov":
currentMonth = 11;
break;
case "Dec":
currentMonth = 12;
break;
}
var time = -688627000;
var parsedTime = new Date(parseInt(time, 10)).toString();
var splitTime = parsedTime.split(" ");
var convertedEndDate = new Date(splitDate[2] + "/" + currentMonth + "/" + splitDate[3] + " " + splitTime[4]);
alert(convertedEndDate);
var currentDate = new Date();
alert(currentDate);
您的问题在这里:
var convertedEndDate = new Date(splitDate[2] + "/" + currentMonth +
"/" + splitDate[3] + " " + splitTime[4]);
其中假设24/4/2025 00:42:53
可以作为参数传递到Date()
对象中。来自MDN:
dateString
表示日期的字符串值。字符串应采用Date.parse()方法识别的格式(符合IETF的RFC 2822时间戳以及ISO8601版本)。
这显然不是ISO8601格式(将从2025-04-24开始),但它似乎也不是RFC282时间戳的格式。事实上,你最好不要把月份名称翻译回数字;用空格替换/
后,以下内容似乎可以很好地工作:
var convertedEndDate = new Date(splitDate[2] + " " + splitDate[1]
+ " " + splitDate[3] + " " + splitTime[4]);
使用新日期-setFullYear()和setHours()
new Date()
setFullYear();
setHours();
演示更新
使用日期对象并设置方法。D=新日期();D.setDay(12);D.setMonth(2);当您这样做时,在脚本执行