Làm thế nào tôi có thể nhận được 2 chữ số cuối của:Return 2 chữ số cuối một số
<departureDate>200912</departureDate>
để đối tượng của tôi:
$year = $flightDates->departureDate->year;
Làm thế nào tôi có thể nhận được 2 chữ số cuối của:Return 2 chữ số cuối một số
<departureDate>200912</departureDate>
để đối tượng của tôi:
$year = $flightDates->departureDate->year;
// first two
$year = substr($flightDates->departureDate->year, 0, 2);
// last two
$year = substr($flightDates->departureDate->year, -2);
Nhưng với thực tế là bạn phân tích cú pháp một ngày ở đây sẽ thông minh hơn để sử dụng hàm ngày tháng. p.e. strtotime()
và date()
hoặc thậm chí:
<?php
$someDate ='200912';
$dateObj = DateTime::createFromFormat('dmy', $someDate);
echo $dateObj->format('Y');
// prints "2012" .. (see date formats)
Ví dụ 1: Bạn chỉ có thể tước các thẻ với strip_tags
và sử dụng substr
$number = '<departureDate>200912</departureDate>' ;
$year = substr(strip_tags($number), 0,2);
var_dump($year);
Ví dụ 2: Bạn cũng có thể sử dụng simplexml_load_string
với substr
$number = '<departureDate>200912</departureDate>' ;
$year = substr(simplexml_load_string($number),0,2);
var_dump($year);
Output
string '20' (length=2)
chuyển nó sang chuỗi. sau đó lấy hai phần tử đầu tiên.
Trong java, bạn có thể thực hiện việc này bằng cách làm theo mã. Để biến là một số nguyên có tên là x. sau đó bạn có thể sử dụng
byte[] array= Integer.toString(x).get.bytes().
Mảng [0] và mảng [1] là hai chữ số đầu tiên. mảng [array.length-1] và mảng [array.length] là hai mảng cuối cùng.
Thêm một số mã để làm cho câu trả lời của bạn có ý nghĩa hơn – Yaroslav
Trong java, bạn có thể làm điều này bằng cách làm theo mã. Để biến là một số nguyên có tên là x. sau đó bạn có thể sử dụng byte [] array = Integer.toString (x) .get.bytes().Bây giờ mảng [0] và mảng [1] là hai chữ số đầu tiên. –
Chỉnh sửa câu trả lời của bạn và thêm mã này vào đó, đừng quên định dạng nó. – Yaroslav
Bạn chỉ có thể giải quyết nó như chuỗi, hàm substr
sẽ chuyển đổi nó tự động:
<?php
//$year = '200912';
$year = $flightDates->departureDate->year;
echo substr($year, -2);
?>
Hãy xem xét kỹ hơn substr chức năng. Nếu bạn muốn kết quả là một số nguyên nghiêm ngặt, thì chỉ cần thêm (int)
trước mặt trả lại.
Nhưng, như Jan. nói, bạn tốt hơn nên làm việc với nó như là một ngày:
<?php
//$year = '200912';
$year = $flightDates->departureDate->year;
$date = DateTime::createFromFormat('dmy', $year);
echo date("y", $date->getTimestamp());
?>
Đã chỉnh sửa cho tùy chọn ngày. – Peon
Bạn có thể sử dụng một hoạt động aritimethic cơ bản, như thế này ...
while ($var > 100)
{
$var = (int) $var/10;
}
Có thể có giải pháp tốt hơn nhưng giải pháp này sẽ phù hợp với mức phạt
Đây là một số mã oldschool điên: D – Peon
Tôi đã cố gắng để có được ra khỏi C nhưng C đã không nhận ra tôi, hehe – ARibas
nhưng mã này __discards__ các chữ số cuối cùng, chỉ giữ hai chữ cái đầu tiên ... – IdiotFromOutOfNowhere
Đối với con số này, bạn có thể sử dụng chức năng php của modulo (http://php.net/manual/en/internals2.opcodes.mod.php):
<?php
//$year = '200912';
$year = $flightDates->departureDate->year;
echo $year % 100;
?>
là nó '$ flightDates-> departureDate-> year' trả về' 200912 departureDate> ' –
Baba
Đừng nghĩ vậy. Có vẻ như số được trích xuất từ XML – Peon
Hãy xem hàm date() và hàm strtotime() tại php.net. –