Как я могу получить последние 2 цифры:
<departureDate>200912</departureDate>
к моему объекту:
$year = $flightDates->departureDate->year;
Как я могу получить последние 2 цифры:
<departureDate>200912</departureDate>
к моему объекту:
$year = $flightDates->departureDate->year;
// first two
$year = substr($flightDates->departureDate->year, 0, 2);
// last two
$year = substr($flightDates->departureDate->year, -2);
Но учитывая тот факт, что вы разбираете дату здесь, было бы разумнее использовать функцию даты.
возможная ошибка strtotime()
и date()
или даже:
<?php
$someDate ='200912';
$dateObj = DateTime::createFromFormat('dmy', $someDate);
echo $dateObj->format('Y');
// prints "2012" .. (see date formats)
Вы можете просто указать его как строку, функция substr
будет автоматически конвертировать его:
<?php
//$year = '200912';
$year = $flightDates->departureDate->year;
echo substr( $year, -2 );
?>
Посмотрите более подробно на substr. Если вы хотите, чтобы результат был строгим целым числом, просто добавьте (int)
перед возвратом.
Но, как сказал Ян., вам лучше работать с ним как дату:
<?php
//$year = '200912';
$year = $flightDates->departureDate->year;
$date = DateTime::createFromFormat( 'dmy', $year );
echo date( "y", $date->getTimestamp() );
?>
Для чисел вы можете использовать функцию php modulo (http://php.net/manual/en/internals2.opcodes.mod.php):
<?php
//$year = '200912';
$year = $flightDates->departureDate->year;
echo $year % 100;
?>
Вы можете использовать базовую арифметическую операцию, например...
while ( $var > 100 )
{
$var = (int) $var / 10;
}
Может быть лучшее решение, но это будет соответствовать тонкому
Пример 1: вы можете просто разделить теги на strip_tags
и использовать substr
$number = '<departureDate>200912</departureDate>' ;
$year = substr(strip_tags($number), 0,2);
var_dump($year);
Пример 2: Вы также можете использовать simplexml_load_string
с substr
$number = '<departureDate>200912</departureDate>' ;
$year = substr(simplexml_load_string($number),0,2);
var_dump($year);
Выход
string '20' (length=2)
преобразуйте его в строку. затем возьмите первые два элемента.
В java вы можете сделать это, выполнив следующий код. Пусть переменная является целым числом с именем x. то вы можете использовать
byte[] array= Integer.toString(x).get.bytes().
Теперь массив [0] и массив [1] - первые две цифры. массив [array.length-1] и массив [array.length] - это последние два.