我正在尝试创建此应用程序,但我目前的知识阻止我构建它,希望你能帮助我!
方案
我正在创造某种乳制品应用。从用户按下开始按钮的那一刻起,创建对象,用户稍后可以通过填写他的报告来编辑该对象。
现在,用户每天只能写一份报告,因此必须在早上0:00将新对象添加到数据库中,然后再次填写。
问题
如何告诉php在特定时刻创建新对象?
我想这样做:
*到目前为止,我发现的唯一解决方案是使用cronjobs,但我不熟悉这些。 cronjobs是正确的方式,我怎么能使用它们(我在MAMP上测试我的代码)?或者是否可以单独使用php,以及如何实现?
非常感谢所有帮助! lvRoy
答案 0 :(得分:0)
我认为你根本不需要cronjobs(如果我理解正确的话)。您只需检查是否创建了新报告,无论他们当天是否已创建报告。如果答案为否,您可以使用正确的数据在数据库中创建新项目,否则您将返回错误消息“已创建当天的报告”。
答案 1 :(得分:0)
是否可以(有限制)仅在每日首次使用时生成此对象?当用户访问他的面板时,它会检查当天是否已经有一个对象,如果没有,那么它会创建这个对象吗?
如果这对您没问题,那么您可以这样做:
首先,您可以为用户(在数据库/会话中)添加另一个名为" next_check"这将表示您需要检查对象是否已创建的下一次(日期或时间戳)。
在运行时,您将检查此属性是否低于当前时间,例如:
if ($user['next_check'] <= time()) {
//create task
}
如果您需要创建此任务(条件为真),那么您将创建对象并更新&#34; next_check&#34;值到时间()。否则,你什么都不做。
请注意,此解决方案会丢失对象的历史记录,因为如果用户10天内未访问此应用程序,则10天内不会创建任何对象,但最终登录应用程序时只会创建1个对象。
当然,即使用户没有通过在&#34; next_check&#34;&#34; next_check&#34;之后迭代条件来访问您的应用,您也可以每天生成一个对象。低于时间()。
while ($user['next_check'] <= time()) {
//create object
$user['next_check'] += 3600 * 24;
}