2016-07-02 4 views
-1

私はこの日付を持つと仮定しましょう:2016-07-27。私は何を達成したいことは次のとおりです。y-m-d形式の日付の値を抽出する方法は?

$year = 2016; 
$month = 07; 
$day = 27; 
私が試してみました何

  • $year = preg_match("/^[^-]*/", "2016-07-27");
    をそれはを返します。1
  • $month = preg_match("(?<=\-)(.*?)(?=\-)", "2016-07-27");
    それはを返します。Warning: preg_match(): Unknown modifier '('
  • $year = ???

ダッシュの間の数字を抽出し、上記のように下の変数に保存するにはどうすればよいですか?

+1

です。[preg_match](http://php.net/manual/en/function.preg-match.php)は、パターンが一致する場合は1を返し、一致しない場合は0を返すためです。問題がまだGoogleやSOの投稿を検索しましたか? – SWLim

+1

[日付から年と月を取得する方法 - PHP](http://stackoverflow.com/questions/8967970/how-to-get-year-and-month-from-a-date-php)** && ** [日付からスプリット文字列](http://stackoverflow.com/q/3524881/4577762)** && ** [日付を(08-17-2011)を月、日、年に分割する方法]]( http://stackoverflow.com/q/7103617/4577762)(正確には重複しないものもありますが、確かに助けになります)@JohnConde – FirstOne

答えて

1

それはそのフォーマットを変更する文句を言わない文字列だ場合、あなたは、単にこれを行うことができます。

$date = '2016-07-27'; 
list($year, $month, $day) = explode('-', $date); 

echo $year; // 2016 
echo $month; // 07 
echo $day; // 27 
は、

ただし、日付形式が変更された場合は、date_parseまたは他のDateTimeメソッドを使用する必要があります。

+0

ニースの答え。私はそれを受け入れるつもりです、なぜなら、それはより短く、最初に0を保持しているからです。 –

4

車輪の再発明をしないでください - date_parseはあなたのためにすべての重労働を行います。

$parsed = date_parse('2016-07-27'); 
$year = $parsed['year']; 
$month = $parsed['month']; 
$day = $parsed['day']; 
+0

Thanks @ Fred-ii-。それを逃した。 – Mureinik

+0

よろしくお願いいたします。 –

+0

@Mureinikこの機能が存在するかどうかはわかりませんでした。それを指摘してくれてありがとう。 –

関連する問題