gpt4 book ai didi

javascript - 如何使用 JavaScript 解析日历文件日期?

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:27:19 24 4
gpt4 key购买 nike

我们需要在浏览器上使用 JavaScript 来读取和解析日历文件 (.ics)(也称为 iCal 格式)。我编写了一个自定义函数来读取这些值,然后使用 JavaScript Date() 函数创建一个数据对象。

有没有更简单更好的方法来做到这一点?请看我的功能(如下),欢迎您提出意见。

.ics 文件中的典型日期值如下所示:

DTSTART:20110914T184000Z

需要在冒号处将其分开,所以:

var strData = 'DTSTART:20110914T184000Z'
var x = strData.indexOf(":");
var strVal = strData.slice(x + 1 );

接下来,调用一个返回日期对象的函数:

var dateObj = calenDate(strVal);

//生成的 dateObj 值:2011 年 10 月 14 日星期五 18:40:00 GMT-0400(东部夏令时间)

下面是解析日期的函数。

function calenDate(icalStr)  {
// icalStr = '20110914T184000Z'
var strYear = icalStr.substr(0,4);
var strMonth = icalStr.substr(4,2);
var strDay = icalStr.substr(6,2);
var strHour = icalStr.substr(9,2);
var strMin = icalStr.substr(11,2);
var strSec = icalStr.substr(13,2);

var oDate = new Date(strYear,strMonth, strDay, strHour, strMin, strSec)

return oDate;
}

我认为有些地方不对劲,因为它弄错了月份。

最佳答案

由于某些奇怪的原因,月份参数是从零开始的 (reference)。

在您的函数中更改这一行。

var strMonth = icalStr.substr(4,2);

为此:

var strMonth = parseInt(icalStr.substr(4,2),10)-1;

请参阅 jsFiddle 上的工作演示:http://jsfiddle.net/cTkTQ/

关于javascript - 如何使用 JavaScript 解析日历文件日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8657958/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com