我希望从此案例中获得验证。如果输入日期小于现在。因此,它会产生警报并重定向到主页。我写了这个,但它没有用。
$dateEntry = array($current_employee->emp_dtentry);
if ($dateEntry < strtotime('+3 months')) {
echo "<script>alert('you don't have the right to access this menu')</script>";
redirect('new_leave','refresh');
}
感谢任何帮助,谢谢!
答案 0 :(得分:4)
您将日期放入数组中,然后将其与时间戳进行比较。你为什么这样做?
假设$current_employee->emp_dtentry
是Unix时间戳:
if ($current_employee->emp_dtentry < strtotime('+3 months')) {
如果它不是Unix时间戳并且是valid date format,你可以这样做:
if (strtotime($current_employee->emp_dtentry) < strtotime('+3 months')) {
如果它不是有效的日期格式,您需要使用DateTime::createFromFormat()
来解析日期,然后进行比较。整个DateTime对象更容易做到。
// see manual format options
$empdtEntry = DateTime::createFromFormat('<format goes here>', ($current_employee->emp_dtentry);
$current_employee->emp_dtentry);
$threeMonthsFromNow = new DateTime(+3 months);
if ($empdtEntry < $threeMonthsFromNow ) {
答案 1 :(得分:2)
当你重定向时,你的回声不会起作用。要么刷你的javascript,要么使用javascript来重定向。
使用flash:
$dateEntry = $current_employee->emp_dtentry;
if ($dateEntry < strtotime('+3 months')) {
$this->session->set_flashdata("javascript", "<script>alert('you don't have the right to access this menu')</script>");
redirect('new_leave');
}
然后在new_leave
视图中检查它是否存在并回显它:
if($this->session->flashdata('javascript')){
echo $this->session->flashdata('javascript');
}
或使用javascript按以下方式执行:
$dateEntry = $current_employee->emp_dtentry;
if ($dateEntry < strtotime('+3 months')) {
echo "<script>alert('you don't have the right to access this menu'); window.location.href='new_leave';</script>";
}