2

我有这段代码可以从数据库中获取一个字段:

$end_date=$row1['end_date'];

如果我打印它,它会给我类似的信息:25-09-2012 我需要的是获取月份值、年份和日期。就像是:

$month=09;
$day=25;
$year=2012;

我怎样才能做到这一点?谢谢!

4

7 回答 7

5

使用日期时间:

$date = new DateTime($row1['end_date']);
$year = $date -> format('Y');
$month = $date -> format('m');
$day = $date -> format('d');

如果您的时间戳都与提供的时间戳一样,请保持简单:

list($day, $month, $year) = explode('-', $row1['end_date']);
于 2012-09-25T14:27:17.930 回答
2

在您的情况下,您可以像这样使用explode函数:

// store a string containing "25-09-2012"
$end_date = $row1['end_date'];

// split "25-09-2012" into an array of three elements
$thedate = explode("-", $end_date);

// retrieve the values
$month = $thedate[0]; // 25
$day = $thedate[1]; // 09
$year = $thedate[2]; // 2012
于 2012-09-25T14:25:11.067 回答
1

尝试 [month('end_date')] [day('end_date')] [year('end_date')]

或使用爆炸并使用 - 作为分隔符

于 2012-09-25T14:24:23.427 回答
1

在这个描述 PHP 中各种格式化方法和有用的日期函数的有用教程中取得高峰:

日期/时间函数

日期格式

于 2012-09-25T14:26:01.437 回答
1
$values = getdate(strtotime($row1['end_date']));
echo $values['mon']; //month
echo $values['mday']; //day
echo $values['year']; //year
于 2012-09-25T14:26:16.243 回答
1

A. 你可以使用DateTime

$date = DateTime::createFromFormat('d-m-Y',$row1['end_date']);
$month = $date->format("m");
$day = $date->format("d");
$year = $date->format("Y");

B. 使用strtotime

$date = strtotime($row1['end_date']);
$month = date("m", $date);
$day = date("d", $date);
$year = date("Y", $date);

C. 你可以只sscanf扫描字符串

$date = sscanf($row1['end_date'], "%d-%d-%d");
$month = $date[0] ;
$day =  $date[1] ;
$year =  $date[2] ;

D. 另一种方法是使用list&explode

list($day, $month, $year) = explode('-', $row1['end_date']);
于 2012-09-25T14:28:26.300 回答
1

Do it on a single line and format it however you would like. (Dec, December, 12) and so on with date().

list($month, $day, $year) = explode('-', date('m-d-Y', strtotime($row1['end_date'])));
于 2012-09-25T14:35:31.420 回答