2010/09/01
2010/10/12
2010/8/2
2010/10/2
2010/5/12
を
2010/09/01
2010/10/12
2010/08/02
2010/10/02
2010/05/12
となるようにしたいのですが、どうすればいいですか?
lang
1<html> 2<head> 3 <meta http-equiv="content-type" content="text/html;charset=utf-8"/> 4 <title></title> 5</head> 6<body> 7<?php 8 $str = array("2010-09-01","2010.10.12","2010-8-2","2010-10-2","2010-5-12"); 9?> 10</body> 11</html>
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答5件
0
http://php.net/manual/ja/datetime.format.php
lang
1<?php 2//string型では無いので変数名strは適切ではない。arrが適切 3$arr = array("2010-09-01","2010.10.12","2010-8-2","2010-10-2","2010-5-12"); 4foreach ( $arr as $date_str ) 5{ 6 $date = date_create($date_str); 7 echo date_format($date, 'Y/m/d'); 8}
投稿2015/06/15 10:52
編集2015/06/15 11:12総合スコア775
0
lang
1<?php 2$dates = array("2010-09-01", "2010.10.12", "2010-8-2", "2010-10-2", "2010-5-12"); 3foreach ($dates as $date) { 4 if (preg_match('/^(\d{4})\D(\d{1,2})\D(\d{1,2})$/', $date, $m)) { 5 echo sprintf('%4d/%02d/%02d', $m[1], $m[2], $m[3]) . '<br>'; 6 } 7}
正規表現で解いてみました。
数字4桁, 数字以外の1文字, 数字1または2桁, 数字以外の1文字, 数字1または2桁
にマッチします。
投稿2015/06/19 04:58
編集2015/06/19 05:17総合スコア1293
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/06/19 05:15
2015/06/19 05:19
2015/06/19 05:19
2015/06/19 05:28
2015/06/19 05:32
2015/06/19 05:41
0
他の方が書いているように、ある程度元データの書式が定まっているのならstrtotimeでも良いんじゃないかなと思います。
他の例ということでsscanfで考えてみました。
lang
1$list = array( 2 '2010/09/01', 3 '2010/10/12', 4 '2010/8/2', 5 '2010/10/2', 6 '2010/5/12' 7); 8 9$newList = array(); 10 11foreach ($list as $date) { 12 list($y, $m, $d) = sscanf($date, '%d/%d/%d'); 13 $newList[] = sprintf('%04d/%02d/%02d', $y, $m, $d); 14} 15 16var_dump($newList);
投稿2015/06/19 03:32
総合スコア206
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/06/19 03:38
2015/06/19 03:46
0
下記でどうでしょうか?
lang
1 $str = array("2010-09-01","2010-10-12","2010-8-2","2010-10-2","2010-5-12"); 2 $result = array_map(function($s) { return date('Y/m/d', strtotime($s)); }, $str); 3 var_dump($result); 4/* 5array(5) { 6 [0]=> 7 string(10) "2010/09/01" 8 [1]=> 9 string(10) "2010/10/12" 10 [2]=> 11 string(10) "2010/08/02" 12 [3]=> 13 string(10) "2010/10/02" 14 [4]=> 15 string(10) "2010/05/12" 16} 17*/
投稿2015/06/15 10:58
総合スコア1679
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/06/15 11:01
2015/06/16 02:40
2015/06/19 04:10
2015/06/19 04:28
2015/06/19 04:59
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。