完整的日历js日期在错误的地方

时间:2013-10-08 05:15:15

标签: jquery calendar

我在使用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小时)实际上它必须是黄色的情况(当天的日期)

my calendar

非常感谢Anykind的帮助

2 个答案:

答案 0 :(得分:1)

此问题与fullcalendarjs无关。相反,它与新的Date()相关。

根据日期文件

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/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/

答案 1 :(得分:0)

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

为什么他将事件添加到下个月的正当理由是因为Date对象的month参数从0开始(1月)并且运行到11(12月)。这意味着如果他想在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作为一个没有'new'关键字的函数调用将产生一个表示当前日期和时间的日期对象。这意味着您不必为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关键字而不提供任何参数。