3

我在使用 jquery full calenda.js 时遇到了一些麻烦

我有很多来自数据库的日期,所以我生成了这样的代码

events: [
                <?php while ($tache= mysql_fetch_assoc($liste_tache)): ?>
                {
                    title: '<?php echo $tache['libelle'] ?>',
                    start: new Date(<?php echo day($tache['date_tache'],'Y') ?>, <?php echo day($tache['date_tache'],'m') ?>, <?php echo day($tache['date_tache'],'d') ?>, <?php echo day($tache['date_tache'],'H') ?>, <?php echo day($tache['date_tache'],'i') ?>),
                    allDay: false
                },
            <?php endwhile; ?>
            {
                    title: 'test',
                    start: new Date(2013, 10, 08, 07, 30),
                    allDay: false
                },
            ]

并查看是否一切正常,我手动添加了一个事件。

事实上,问题在于日期 2013,10,08 设置在日历的末尾,它似乎是在另一个月份。(时间设置为 24 小时)事实上它必须在黄色的情况下(当天的日期)

我的日历

任何帮助将不胜感激

4

2 回答 2

1

此问题与 fullcalendarjs 无关。相反,它与 new Date() 有关。

根据日期文档

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date

new Date 返回当前日期,因此您无需使用当前日期的参数调用 new Date。

你必须只使用日期

        {
            title: 'test',
            start: Date(2013, 10, 08, 07, 30),
            allDay: false
        }

         or simply

         {
            title: 'test',
            start: Date(), //for current date
            allDay: false
        }

它应该可以正常工作。这是jsfiddle http://jsfiddle.net/abhishek_gahlot/VZvC8/1/

于 2013-10-08T11:07:40.003 回答
0

虽然 Abhishek 的回答帮助 OP 解决了他/她的问题,但我认为它没有正确传达 Javascript 日期背后的原则。

他为什么要将事件添加到下个月的正确原因是因为 Date 对象的月份参数从 0(一月)开始并运行到 11(十二月)。这意味着如果他想在 2013 年 10 月 8 日添加事件,他应该使用以下参数

    {
        title: 'test',
        start: new Date(2013, 9, 8, 07, 30), // Note that the month parameter is 9, not 10
        allDay: false
    }

此外,正如 Abhishek 所提到的,将 Javascript 日期作为没有“新”关键字的函数调用将产生一个表示当前日期和时间的日期对象。这意味着您不必为 Date 提供任何参数来获取当前日期。请参阅以下内容:

    {
        title: 'test',
        start: Date(), // This will return the current date and time AS A STRING
        allDay: false
    }

虽然这在逻辑上与使用 Date(2013, 10, 08, 07, 30) 没有什么不同,但不提供参数更可取,因为更清楚的是您需要当前日期和时间而不是其他日期。额外的参数只会让您/其他开发人员对您的意图感到困惑。

如果您想以 Date 对象而不是字符串的形式获取当前日期和时间,请使用 new 关键字而不提供任何参数。

于 2013-11-28T20:18:50.267 回答