我在使用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小时)实际上它必须是黄色的情况(当天的日期)
非常感谢Anykind的帮助
答案 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关键字而不提供任何参数。