[正規表現+php]

preg_replace を用いて、
05/8/2(火) 16:52

2005-08-02 16:52:00
このように変換したいです!

よろしくお願いいたします!

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:--
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答1件)

id:JULY No.1

回答回数966ベストアンサー獲得回数247

ポイント50pt

<?php

  $string = ”05/08/02(火) 16:52”;

  $pattern = ”/(¥d{2})¥/(¥d{2})¥/(¥d{2})¥(.*¥) (¥d{2}):(¥d{2})/”;

  $replacement = ”20¥${1}-¥${2}-¥${3} ¥${4}:¥${5}:00”;

  echo preg_replace($pattern, $replacement, $string);

?>


ただし、この場合、元の文字列に含まれる日時の数字が、2桁になっていることが前提です。

上記例のように、1桁の数字の場合に頭に 0 をつけるとなると、preg_replace による変換では

無理だと思います。preg_grep で各要素を抜き出した上で、sprintf で文字列を組み立てる、

といったことが必要だと思います。

id:akame23

ご回答ありがとうございます!

前提2桁でのテストに成功しました。

ご指摘の内容で、1桁問題に取り組んでみたいと思います。

2005/09/01 14:32:31

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません