本文整理汇总了PHP中DateUtil::setYearToStrptime方法的典型用法代码示例。如果您正苦于以下问题:PHP DateUtil::setYearToStrptime方法的具体用法?PHP DateUtil::setYearToStrptime怎么用?PHP DateUtil::setYearToStrptime使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类DateUtil
的用法示例。
在下文中一共展示了DateUtil::setYearToStrptime方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: parse
function parse()
{
$domDoc = parent::getDOMDocument();
// applique l'expression XPath sur le DOM
$domXpath = new DOMXPath($domDoc);
$nodeList = parent::getDOMNodeList($domXpath, $this->xpath);
// récupération du lieu de l'évènement
$nodeLieu = parent::getDOMNodeList($domXpath, self::LIEU_XPATH);
$lieu = $nodeLieu->item(0)->nodeValue;
// l'année en cours de parsing. Sert sur plusieurs itérations.
$anneeTmp;
$evmtTmp;
$evmtList = array();
foreach ($nodeList as $node) {
// s'agit-il d'une nouvelle catégorie ?
if ($node->attributes->getNamedItem("class") != null && $node->attributes->getNamedItem("class")->value == "ville-colonne-centre") {
// s'agit-il d'une année ?
if (preg_match(self::ANNEE_PATTERN, $node->nodeValue)) {
$anneeTmp = preg_replace(self::ANNEE_PATTERN, "\$1", $node->nodeValue);
}
} elseif ($node->attributes->length == 0) {
// récupération des détails de l'évènement
$nodeDetails = parent::getDOMNodeList($domXpath, self::DETAILS_RELATIF_XPATH, $node);
if ($nodeDetails->length == 0) {
continue;
}
$detailsText = $nodeDetails->item(0)->nodeValue;
// si on arrive à parser la description, l'horaire et éventuellement le détail
if (preg_match(self::DETAILS_EVENEMENT_PATTERN, $detailsText, $detailsArray)) {
$description = $detailsArray[1];
$heureDebut = intval($detailsArray[2]);
$minuteDebut = intval($detailsArray[3]);
$heureFin = intval($detailsArray[4]);
$minuteFin = intval($detailsArray[5]);
if (count($detailsArray) > 6) {
$details = $detailsArray[6];
}
// sinon, on insère tout dans la description
} else {
$description = $detailsText;
}
// récupération de la date de l'évènement
$nodeDate = parent::getDOMNodeList($domXpath, self::DATE_RELATIF_XPATH, $node);
// si on ne trouve pas le noeud, alors on passe au suivant
if ($nodeDate->length == 0) {
continue;
}
$dateText = $nodeDate->item(0)->nodeValue;
$date = strptime($dateText, $this->dateEvenementPattern);
/* si on ne parvient pas parser la date, on passe au noeud suivant
car les évènements sans date ne nous intéressent pas */
if (!$date) {
continue;
}
// on positionne l'année récupérée plus tôt
DateUtil::setYearToStrptime($date, $anneeTmp);
// on positionne l'heure de début si elle existe
$dateDebut = $date;
// FIXME: quand l'heure n'a pas été trouvée pour l'évènement en cours, c'est l'heure de l'évènement précédent qui est positionnée
if (isset($heureDebut) && isset($minuteDebut)) {
$dateDebut["tm_hour"] = $heureDebut;
$dateDebut["tm_min"] = $minuteDebut;
}
// on positionne l'heure de fin si elle existe
$dateFin = $date;
if (isset($heureFin) && isset($minuteFin)) {
$dateFin["tm_hour"] = $heureFin;
$dateFin["tm_min"] = $minuteFin;
}
// récupération du lien de l'évènement
$nodeLien = parent::getDOMNodeList($domXpath, self::LIEN_RELATIF_XPATH, $node);
$lien = $nodeLien->item(0)->nodeValue;
// construction de l'objet Evenement
$evmtTmp = new Evenement();
$evmtTmp->description = $description;
$evmtTmp->dateDebut = DateUtil::timestampFromStrptime($dateDebut);
$evmtTmp->dateFin = DateUtil::timestampFromStrptime($dateFin);
$evmtTmp->lieu = $lieu;
$evmtTmp->lien = $this->url . "/../" . $lien;
// ajoute l'évènement à la liste retournée
array_push($evmtList, $evmtTmp);
// réinitialisation des paramètres
unset($description, $dateDebut, $dateFin, $lien, $heureDebut, $minuteDebut, $heureFin, $minuteFin);
}
}
return $evmtList;
}