2010-02-21 16 views
10

Deseo obtener la fecha de la fecha actual en php. lo que he intentado es aquí ...Obteniendo el día del día actual en PHP

echo $x."<br>"; 
echo date("D",$x)."<br>"; 

pero la salida fue

21-02-10 
Thu 

Se trata de dar fecha correcta, pero no el día correcto value.Why ..?

Lo que quiero día es la fecha del lunes para la semana actual que se puede generar en cualquier día de la semana. así que lo que hice fue, estoy tomando el día de hoy y comparando con (L, M .... Sol) y la creación de una marca de tiempo, respectivamente, usando

case "Mon": 

$startdate1=date("d-m-y"); 
$parts = explode('-',$startdate1); 
$startdate2 = date('d-m-Y',mktime(0,0,0,$parts[1],($parts[0]+1),$parts[2])); 
$startdate3 = date('d-m-Y',mktime(0,0,0,$parts[1],($parts[0]+2),$parts[2])); 
$startdate4 = date('d-m-Y',mktime(0,0,0,$parts[1],($parts[0]+3),$parts[2])); 
$startdate5 = date('d-m-Y',mktime(0,0,0,$parts[1],($parts[0]+4),$parts[2])); 
$startdate6 = date('d-m-Y',mktime(0,0,0,$parts[1],($parts[0]+5),$parts[2])); 
$startdate7 = date('d-m-Y',mktime(0,0,0,$parts[1],($parts[0]+6),$parts[2])); 

$dates=array(1 => $startdate1,$startdate2,$startdate3,$startdate4,$startdate5,$startdate6,$startdate7); 
$i=1; 
while($i <= 7) 
{ 
echo $dates[$i]; 
$i++; 
} 
break; 

fecha $ es la matriz definitiva correspondiente al día de hoy que tiene ser devuelto. ¿Hay algún otro método mejor para realizar esta operación?

Respuesta

2

lo que hice para resolverlo se utiliza el formato de fecha ('d-m-Y') en lugar de ('d-m-y') en función de la fecha, que fue la causa del problema.Por lo tanto strtotime aceptó el formato y dio el resultado correcto para

$t=date('d-m-Y'); 
echo date("D",strtotime($t)); 
0

es probable pasar una cadena como marca de tiempo

echo $x."<br>"; 
echo date("D",$x)."<br>"; 

Retire $x y te mostrará el día correcto o cambiarlo a

$x = '21-02-2010'; 
echo date('D', strtotime($x)); 
+0

Aún la salida es Thu para $ x = '21 -02-2010 '; –

+0

Sí, este fue el correcto ... :) Thanks –

2

lo que he intentado es aquí ...

echo date("D",$x)."<br>";

date espera un valor de marca de tiempo (int) como el segundo parámetro. Su $x es una cadena que contiene un formato de fecha ambiguo. Convierta esa fecha en una marca de tiempo primero, usando strptime o strtotime y use la función date correctamente para obtener el valor correcto del día.

En cuanto a su segunda parte, que no necesita (y no debería) comprobar el nombre del día para calcular la correcta Lunes, Martes, etc Un enfoque más eficiente es por ejemplo usando strtotime para obtener last Monday etc.

+0

echo date ("D", strtotime ($ x, 1)). "
"; esto tampoco da una respuesta correcta. –

+0

Sí, este fue el correcto ... :) Gracias –

4

¿Qué tal esto:

//today is monday 
if (1 == date('N')){ 
    $monday = time(); 
}else{ 
    $monday = strtotime('last Monday'); 
} 

for ($i = 0; $i < 7; $i++){ 
    echo date('d-m-Y', $monday) . '<br>'; 
    $monday = strtotime('tomorrow', $monday); 
} 

primer hallazgo lunes, si no es hoy, a continuación, imprimir 7 fechas

+0

if (1 == date ('N')) ¿Qué significa 'N' en esta línea? ¿Pueden explicarme el código un poco más? .? –

+0

N es la representación numérica del día de la semana. Ver http://uk2.php.net/manual/en/function.date.php –

+0

http://php.net/manual/en/function.date.php –

3

Wh en Quiero día es la fecha del lunes para la semana actual que puede ser generada en cualquier día de la semana.

Eso es lo que quiere. $mday es el mes del lunes de esta semana. No importa si no es positivo, mktime se encargará de ese derecho. $monday tiene la fecha y hora de la medianoche del lunes.

$now = getdate(); 
$mday = $now['mday'] - ($now['wday'] + 6) % 7; 
$monday = mktime(0, 0, 0, $now['mon'], $mday, $now['year']); 
echo(date('d-m-y', $monday)); 
+0

Parece un trabajo difícil de encontrar el pasado lunes :) –

+1

Además, nunca podría existir: http://www.last-thursday.org/ – codeholic

11

Intenté esto para conseguir el día actual.

echo date('l'); // output: current day. 
+0

Gracias .. Respuesta perfecta ... – VishalParkash

0

utilizo la fecha de la función y la ruta de acceso a la "D" que informenos para el día actual, y funciona conmigo

$today = date("D"); 

y para obtener la información completa acerca de la fecha actual

$today = date("D M j G:i:s T Y");    // Sat Mar 10 17:16:18 MST 2001 
Cuestiones relacionadas