如何通过表单为我的脚本设置开始日期和结束日期以供用户进行更改?

时间:2011-09-09 14:45:57

标签: php javascript cron

我正在构建一个表单,用户必须选择一个时间间隔,从一天到一天或一个月到一个月或一年到一年,甚至一年中某个月的特定日期到另一个日期......我会用一个JS日历,但我不确定我会做什么来检查特定日期是否已经到来。

用户可以选择开始日期和结束日期,用户进行一次更改,这些更改适用于用户选择的时间间隔,因此一旦到达结束日期,更改将不再适用,脚本重置为默认值...

这些更改可以应用于程序,程序中的代码等......但基本上程序将允许用户在表单上选择的时间间隔内的这些更改但是一旦达到日期,所有内容都将重置为默认值...

我最初的想法是使用PHP的日期('W')函数来获取用户的开始和结束时间并存储它,然后让我的脚本每天查找日期以查看结束日期是否已达到还是没有。然后我的其他想法是使用JS的日历弹出来获取开始和结束日期,并让某种脚本每天查看日期,看看截止日期是否已经到达。但所有这些都不是非常可靠的方式或方法所以也许有人在这里有更多的经验... Cron工作我不是很有经验,但我不太确定如何在我的表格的后端使用php或js为此设置一个cron工作.. < / p>

2 个答案:

答案 0 :(得分:0)

如果您使用jQuery UI,则数据选择器控件具有maxDate选项,如下所示:

通过Date对象设置最大可选日期,或者设置为当前dateFormat中的字符串,或者从今天起的天数(例如+7)或一串值和句点('y'表示年份,'m'数月,'w'持续数周,'d'持续数天,例如'+ 1m + 1w'),或无限制无效。 代码示例

使用指定的maxDate选项初始化一个datepicker。

$( ".selector" ).datepicker({ maxDate: '+1m +1w' });

在init之后获取或设置maxDate选项。

//getter
var maxDate = $( ".selector" ).datepicker( "option", "maxDate" );
//setter
$( ".selector" ).datepicker( "option", "maxDate", '+1m +1w' );

由于日期基于今天,您可以确保它不会超越。如果您需要更多验证,那么也可以在服务器端使用PHP。

答案 1 :(得分:0)

我建议您使用数据库来存储修改后的代码/日期范围。您不必担心cron作业 - 只需在脚本开头放置一些代码,以便每次运行时检查它应该使用哪个版本。

SELECT * FROM scripts WHERE user_id = .... 
AND start_date < NOW() AND end_date > NOW()

检查数据库中的当前更改;如果存在,请加载修改后的脚本而不是正常脚本。