2012-09-28 34 views
10

¿Cómo puedo obtener los 2 últimos dígitos:Devolver los 2 últimos dígitos de un número

<departureDate>200912</departureDate> 

a mi objetivo:

$year = $flightDates->departureDate->year; 
+0

es que $ flightDates-> departureDate-> year' '' que devuelve 200912 ' – Baba

+0

No lo creo. Parece que el número se extrae de XML – Peon

+0

Eche un vistazo a la función date() y la función strtotime() en php.net. –

Respuesta

19
// first two 
$year = substr($flightDates->departureDate->year, 0, 2); 
// last two 
$year = substr($flightDates->departureDate->year, -2); 

Pero dado el hecho de que eres al analizar una fecha aquí, sería más inteligente usar la función de fecha. p.e. strtotime() y date() o incluso:

<?php 
$someDate ='200912'; 
$dateObj = DateTime::createFromFormat('dmy', $someDate); 
echo $dateObj->format('Y'); 
// prints "2012" .. (see date formats) 
1

Ejemplo 1: Usted sólo puede dañar las etiquetas con strip_tags y utilizar substr

$number = '<departureDate>200912</departureDate>' ; 
$year = substr(strip_tags($number), 0,2); 
var_dump($year); 

Ejemplo 2: también se puede utilizar con simplexml_load_stringsubstr

$number = '<departureDate>200912</departureDate>' ; 
$year = substr(simplexml_load_string($number),0,2); 
var_dump($year); 

salida

string '20' (length=2) 
0

convertirlo en cadena. luego tome los primeros dos elementos.

En java puede hacerlo siguiendo el código. Deje que la variable sea un entero llamado x. luego puede usar

byte[] array= Integer.toString(x).get.bytes(). 

Ahora array [0] y array [1] son ​​los primeros dos dígitos. array [array.length-1] y array [array.length] son ​​los dos últimos.

+1

Agregue un código para que su respuesta sea más significativa – Yaroslav

+0

En java puede hacer esto siguiendo el código. Deje que la variable sea un entero llamado x. luego puede usar byte [] array = Integer.toString (x) .get.bytes().Ahora array [0] y array [1] son ​​los primeros dos dígitos. –

+0

Edita tu respuesta y agrega este código allí, no te olvides de formatearla también. – Yaroslav

6

Usted sólo puede tratar como cadena, la función substr lo convertirá automáticamente:

<?php 

//$year = '200912'; 
$year = $flightDates->departureDate->year; 

echo substr($year, -2); 

?> 

Tome una mirada más cercana a substr función. Si desea que el resultado sea un entero estricto, simplemente agregue (int) al frente de la declaración.

Pero, como Jan. dicho, es mejor que se debe trabajar con él como una fecha:

<?php 

//$year = '200912'; 
$year = $flightDates->departureDate->year; 

$date = DateTime::createFromFormat('dmy', $year); 

echo date("y", $date->getTimestamp()); 

?> 
+0

Opción editada para la fecha. – Peon

2

Se podría utilizar una operación aritimethic básica, así ...

while ($var > 100) 
{ 
    $var = (int) $var/10; 
} 

Podría haber una mejor solución, pero esta encajará bien

+0

Este es un viejo código loco de la escuela: D – Peon

+0

Traté de salir de C, pero C no salió de mí, jeje – ARibas

+0

pero este código __describe__ los últimos dígitos, manteniendo solo los dos primeros ... – IdiotFromOutOfNowhere

Cuestiones relacionadas