2015-12-31 69 views
1

我有个约会$da = '18-Nov-2015'如何从php中的给定日期中提取月份和年份?

我想要月份和年份separate.I试过这个,但它没有工作。

$month = date('F',strtotime($da)); 
$YEAR = date('Y',strtotime($da)); 
+0

去hardik答案。 –

+0

此代码有效,是什么问题? http://phpfiddle.org/lite/code/1z4j-i632 –

回答

2

您可以使用date_parse()函数。它返回一个包含日期组件的数组:日,月,年,小时,分钟和其他。

用法示例:

$da = '18-Nov-2015'; 
$dateComps = date_parse($da); 
$year = $dateComps['year']; 
$month = $dateComps['month']; 
$day = $dateComps['day']; 
//and so on, ... 
+0

很好,经过测试'$ dateComps'='array(12){[“year”] => int(2015)[“month”] => int(11)[“day”] => int(18)[“hour”] => bool(false)[“minute”] => bool(false)[“second”] => bool(false)[“ (0){“error_count”] => int(0)[“errors”] =“数组”(=“分数”] => bool(false)[“warning_count”] => int(0)[“warnings” > array(0){} [“is_localtime”] => bool(false)}' –

+0

但是这会返回整数值。 – devpro

4

给它下面的代码尝试:

$da = '18-Nov-2015'; 
$date = DateTime::createFromFormat('d-M-Y',$da); 
echo $date->format("Y"); 
echo $date->format("F"); 

注:DateTime我们可以创建使用任意参数对象一样$date = DateTime::createFromFormat('d-M-Y', $weird_user_input);可以格式化为unix时间戳或 无论其他日期格式我们希望。

+1

如果需要日期的所有组件,这不是非常有效。 – Cristik

+3

为什么OP要“试试这个”?一个好的答案***将总是解释所做的事情以及为什么这样做,不仅是为了OP,而且是为了将来SO的访问者。 –

-1

几乎你已经完成了。这是你如何做到的。

$year = date('Y', strtotime($da)); 
$month = date('m', strtotime($da)); 

F - 通过12

M一个月的数字表示,有前导零01 - - 一个月,如一月或三月1月至

十二月完整的文本格式

m一一个月的短文本表示,三个字母一月至十二月

n - 一个月的数字表示形式,无前导零12

要不干脆你可以使用explode方法

$dateArray = explode('-', $da); 
$dateArray[0] //date 
$dateArray[1] //Month 
$dateArray[2] //Year 

日期参考:http://php.net/manual/en/function.date.php

-1

使用

$da=new DateTime($da); 
$da->format('m-d'); 
+0

你能否添加一些为什么这应该工作的细节?仅有代码的答案不是非常有用,可能会被删除。 – Cristik

-1

招呼试试这个,希望你会得到你的答案你想要什么。 让我知道你是否正确。

<?php 

$dateValue = Date('Y-m-d'); 
$time=strtotime($dateValue); 
$year=date("Y",$time); 
$month=date("F",$time); 
$date=date("d",$time); 

?> 
+0

OP为什么要“尝试这个”?一个好的答案***将总是解释所做的事情以及为什么这样做,不仅是为了OP,而且是为了将来SO的访问者。 –

+0

但他不想要任何解释,这就是为什么我刚刚给出解决方案他想要的。但是你确定你是对的,在解决方案中必须有解释以便将来的观点。我会照顾它的。杰伊布兰查德。 –

-2

我想这在http://phpfiddle.org/

$da='18-Nov-2015'; 
$dateValue = strtotime($da); 
$year = date('Y',$dateValue); 
$monthName = date('F',$dateValue); 
$day = date('d',$dateValue); 
echo $monthName; 
echo $year; 
+0

OP为什么要“尝试这个”?一个好的答案***将总是解释所做的事情以及为什么这样做,不仅是为了OP,而且是为了将来SO的访问者。 –

相关问题