1. Fabrik 3.9 has been released. If you have updated Joomla to 3.9, this is a required update.
    Dismiss Notice

Date element validation rule

Discussion in 'Standard Support' started by jo-ka, Jul 13, 2018.

  1. jo-ka

    jo-ka Member

    Level: Community
    Hello,

    Can you please help me find the best way to set a validation rule where the date shouldn't be greater that "today"?

    Thank's in advance.
     
  2. jo-ka

    jo-ka Member

    Level: Community
    Friendly bump...
     
  3. troester

    troester Well-Known Member Staff Member

    Level: Community
    php validation
    return $data <= date('Y-m-d 00:00:00');
     
    jo-ka and dimoss like this.
  4. dimoss

    dimoss Well-Known Member

    Level: Community
    Hi

    This is what I use in a date element to check the date against a predefined one in another table.

    PHP:
    date_default_timezone_set('UTC');
    $db = & JFactory::getDBO();
    $tour = (int)'{table___tournament_raw}';
    $current = strtotime(gmdate('Y-m-d H:i:s'));
    $query = "SELECT deadline FROM table WHERE id = $tour";
    $db->setQuery( $query );
    $dt = $db->loadResult();
    $deadline = strtotime($dt);
    return $deadline > $current;
    I think it can help u to start or modify it to get what u want.
     
    jo-ka likes this.
  5. dimoss

    dimoss Well-Known Member

    Level: Community
    But this one is direct to the point.
     
    jo-ka likes this.
  6. jo-ka

    jo-ka Member

    Level: Community
    Well, thanks guys.
    I need to have the today's system date and not a fixed date.

    So, shall something like this would work? I've tried but all I've got is a blank page...

    return $data <= CURDATE();
     
  7. troester

    troester Well-Known Member Staff Member

    Level: Community
    date('Y-m-d 00:00:00') is the current date.
    CURDATE() is SQL not php
     
    jo-ka likes this.
  8. jo-ka

    jo-ka Member

    Level: Community
    Oh God! What a dummy.

    OK, thank's. It's working now.
     
  9. troester

    troester Well-Known Member Staff Member

    Level: Community
    I'm not sure about timezones, nor of $data nor of date()...
    If it's relevant do some var_dump
     
  10. jo-ka

    jo-ka Member

    Level: Community
    OK, in that case, couldn't we use also dimoss suggestion?

    date_default_timezone_set('UTC');
    (or the needed time zone)

    before

    return $data <= date('Y-m-d 00:00:00')

    Thanks in advance.
     
  11. cheesegrits

    cheesegrits Support Gopher Staff Member

    Level: Community
    Well, first make sure it's an issue before trying to solve it. Dump your $data ...

    var_dump($data, date('Y-m-d 00:00:00');exit;

    ... and see if it looks like you need to figure TZ's out.

    -- hugh
     

Share This Page