【发布时间】:2016-01-04 15:16:11
【问题描述】:
我有一个场景,我需要根据日期比较来制定一些逻辑。我有点卡住了,非常感谢一些帮助。
场景:
我有包含这些字段的用户表,
period, start_from, valid_to
期间的值可以是(1 个月、2 个月、3 个月、4 个月、6 个月、12 个月)。 start_from 和 valid_to 是日期字段。
如果用户在期间选择了 1。这意味着应该每月向用户发送一封电子邮件。如果用户选择了 2,这意味着应该每两个月向用户发送一封电子邮件。如果选择 3,则应每三个月发送一封电子邮件,以此类推。
如果是年底,也就是 12 月 31 日。无论该时间段是否完成,都应向用户发送过去时间的电子邮件。
示例:如果用户的 start_from 日期是 2015 年 10 月,并且选择了期间 4。尽管事实上,应在 2015 年 12 月结束时向用户发送一封电子邮件,涵盖 oct、nov 和 dec(三个月)那4个月还没有过去。但是在 2016 年,由于用户选择了 4 个月,因此应该在 4 月底发送新的第一封电子邮件。
我有点坚持拼凑整个逻辑,但这就是我到目前为止所做的,我没有看到和解决这个代码。 所以最好避开代码。
$currMonth = (int) date('n',$currtime);
if($currMonth<12){
$period = (int) $PU_Result->rs['period'];
if($period>1){
$validFrom = (int) date('n',strtotime($PU_Result->rs['start_from']));
$requiredMonth = $validFrom+$period;
if($requiredMonth>12)
$requiredMonth=12;
if($currMonth!=$requiredMonth)
continue;
}
}
我正在循环执行这段代码。如果条件不满足,我退出迭代,否则我最终发送邮件。
【问题讨论】:
-
问题是什么?
-
谷歌“php比较日期”或“mysql比较日期”。当您谈到字段时,我猜测您使用的是 mysql。 mysql可以帮你比较日期。
-
是的,我正在使用 mysql。比较不是逻辑的问题。