用JavaScript显示无效日期



我创建了一个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);当您这样做时,在脚本执行

之后,日期将间隔继续

相关内容

  • 没有找到相关文章

最新更新