web-dev-qa-db-fra.com

Comment obtenir l'horodatage (date) depuis la dernière exécution de cron?

Je suis en train de construire un module mais je suis bloqué .. J'ai besoin de l'horodatage du cron précédent pendant que j'exécute un travail hook_cron pour pouvoir vérifier quels nœuds sont nouveaux et les envoyer par e-mail.

J'ai donc besoin de la date/heure de la dernière exécution cron, mais comment puis-je y arriver?

11
FLY

Un horodatage UNIX de la dernière exécution cron peut être récupéré avec:

variable_get('cron_last');

Si vous en avez besoin, vous pouvez facilement manipuler un horodatage UNIX avec la fonction date de PHP.

19
Bart

la fonction hook_requirement () peut vous aider.

Vérifiez ceci: http://api.drupal.org/api/drupal/modules%21system%21system.api.php/function/hook_requirements/7

Dans votre fichier de module, écrivez la fonction hook_requirement ().

function hook_requirements($phase) {
if ($phase == 'runtime') {
    $cron_last = variable_get('cron_last');

    if (is_numeric($cron_last)) {
      $requirements['cron']['value'] = $t('Last run !time ago', array('!time' => format_interval(REQUEST_TIME - $cron_last)));
    }
    else {
      $requirements['cron'] = array(
        'description' => $t('Cron has not run. It appears cron jobs have not been setup on your system. Check the help pages for <a href="@url">configuring cron jobs</a>.', array('@url' => 'http://drupal.org/cron')), 
        'severity' => REQUIREMENT_ERROR, 
        'value' => $t('Never run'),
      );
    }

    $requirements['cron']['description'] .= ' ' . $t('You can <a href="@cron">run cron manually</a>.', array('@cron' => url('admin/reports/status/run-cron')));

    $requirements['cron']['title'] = $t('Cron maintenance tasks');
  }
}
3
mohit_rocks