Outils de conversion de la date....


Description

Voila quelques outils utils...

Source / Exemple :


// Nombre de semaine écoulé entre la date A (JJ/MM/AAAA) debut et la date B (JJ/MM/AAAA) fin
function nbsemaine_beetween_date( $frdatea, $frdateb) {
	if( ereg("^[0-9]{1,2}/[0-9]{1,2}/([0-9]{2}|[0-9]{4})", $frdatea) && ereg("^[0-9]{1,2}/[0-9]{1,2}/([0-9]{2}|[0-9]{4})", $frdateb)) {
		$arr_datea = explode("/", $frdatea);
		$datea = semaine_date(date_semaine($frdatea), $arr_datea[2]);
		$arr_dateb = explode("/", $frdateb);
		$dateb = semaine_date(date_semaine($frdateb), $arr_dateb[2]);;
		$arr_date = explode("/", $datea);
		$int_j = $arr_date[0];
		$int_m = $arr_date[1];
		$int_a = $arr_date[2];
		$int_nrsemaine = 0;
		for($i=0; ; $i++) {
			$date = date("d/m/Y", mktime(0,0,0,$int_m,($int_j + ($i*7)),$int_a));
			if(conv_datetimestamp($date)>conv_datetimestamp($dateb)) {
				break;
			}
			$int_nrsemaine++;
		}
		return $int_nrsemaine;
	} else {
		return false;
	}
}

// Numéro de la semaine d'une date JJ/MM/AAAA
function date_semaine( $frdate) {
	if( ereg("^[0-9]{1,2}/[0-9]{1,2}/([0-9]{2}|[0-9]{4})", $frdate) ) {
		$timestamp = conv_datetimestamp($frdate);
		$int_js = (int)date("w", $timestamp);					// jour courant dans la semaine courante
		if($int_js==0) $int_js = 7;								// Mise en dernière position du Dimanche
		$int_ja = (int)date("z", $timestamp);					// jour courant dans l'année courante
		$int_a = (int)date("Y", $timestamp);					// année courante
		$int_fjs = (int)date("w", mktime(0,0,0,1,1,$int_a));	// 1er jour de l'année courante
		if($int_fjs==0) $int_fjs = 7;							// Mise en dernière position du Dimanche
		//$int_nbja = (int)date("z", mktime(0,0,0,12,31,$int_a)); // nbr jours dans l'année courante
		$int_jdec = (7 - $int_fjs);								// nbr de jours restant avant la fin de la 1ere semaine
		$int_fjds = (1 + $int_jdec);							// 1er jour de la 2ème semaine
		for($i=0;$i<54;$i++) {
			if($int_ja < (($i * 7) + $int_fjds)) break;
		}
		$int_semaine = ($i + 1);
		return $int_semaine;
	} else {
		return false;
	}
}

// Date JJ/MM/AAAA du debut d'une semaine d'une année
function semaine_date( $int_semaine , $int_annee ) {
	if((int)$int_semaine>0 && $int_semaine<>"" && (int)$int_annee>0 && $int_annee<>"" ) {
		$int_ja = (($int_semaine - 1) * 7);						// jour courant dans l'année courante
		if($int_ja==0) 
			$int_ja = 1;										// Mise en dernière position du Dimanche
		else
			$int_ja = $int_ja - 1;								// Mise en dernière position du Dimanche
		$str_date_semaine = date("d/m/Y", mktime(0,0,0,1,$int_ja,$int_annee));
		return $str_date_semaine;
	} else {
		return false;
	}
}

// Jour en lettres d'un TimeStamp
function date_jour( $timestamp ) {
	$lstjour = array("Dimanche","Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi");
	return $lstjour[(int)date("w", $timestamp)];
}

// Conversion date JJ/MM/AAAA en AAAA-MM-JJ
function conv_mysqldate( $frdate ) {
	if( ereg("^[0-9]{1,2}/[0-9]{1,2}/([0-9]{2}|[0-9]{4})", $frdate) )
		$tab = explode( "/", $frdate );
	else
		if( ereg("^[0-9]{1,2}-[0-9]{1,2}-([0-9]{2}|[0-9]{4})", $frdate) )
			$tab = explode( "-", $frdate );
		else
			return false;
	
	return $tab[2]."-".$tab[1]."-".$tab[0];
}

// Conversion date AAAA-MM-JJ en JJ/MM/AAAA
function conv_datemysql( $frdate ) {
	if( ereg("^([0-9]{2}|[0-9]{4})-[0-9]{1,2}-[0-9]{1,2}", $frdate) )
		$tab = explode( "-", $frdate );
	else
		if( ereg("^[0-9]{1,2}/[0-9]{1,2}/([0-9]{2}|[0-9]{4})", $frdate) )
			$tab = explode( "/", $frdate );
		else
			return false;

	return $tab[2]."/".$tab[1]."/".$tab[0];
}

// Conversion date JJ/MM/AAAA en TimeStamp
function conv_datetimestamp( $frdate ) {
	if( ereg("^[0-9]{1,2}/[0-9]{1,2}/([0-9]{2}|[0-9]{4})", $frdate) )
		$tab = explode( "/", $frdate );
	else
		if( ereg("^[0-9]{1,2}-[0-9]{1,2}-([0-9]{2}|[0-9]{4})", $frdate) )
			$tab = explode( "-", $frdate );
		else
			return false;
	
	return mktime(0,0,0,$tab[1],$tab[0],$tab[2]);
}

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.