No.1
- 回答日時:
strtotimeは日本語フォーマットに対応していないので、DateTimeを使いましょう。
DateTime::createFromFormat
http://www.php.net/manual/ja/datetime.createfrom …
$text = '2014年03月07日';
$text = DateTime::createFromFormat('Y年m月d日', $text)->format('Y年n月j日');
お忙しい中、ご回答ありがとうございます。
たびたびお手数をおかけして申し訳ありません。
ご教授いただいた方法でやってみたのですが、
shift_jisだからまずいのでしょうか・・・。
年のところでどうしても文字化けしてしまいます。
ですので、
$text = '2014年03月07日';
$text = DateTime::createFromFormat('Y年m月d日', $text)->format('Y/n月j日');
$text = str_replace("/", "年", $text);
と言う形でまわりくどい事をしたのですが、おかしいでしょうか。
他に効率の良い方法がございましたら
お手数をおかけして申し訳ありませんがご指導いただけるようでしたら幸いです。
No.2ベストアンサー
- 回答日時:
そもそもUTF-8以外でPHPスクリプトを書いている時点でちょっと…普通はUTF-8で書きますね。
UTF-8以外だと以下のような弊害が起こります。このメソッドでもstr_replace関数同様です。Qiita - 【PHP入門講座】 文字列 #UTF-8だけが正しく扱われる理由
http://qiita.com/mpyw/items/d61b50d90e84e289e2be …
【解決策】
1. UTF-8を使う
これが最良の選択肢です。以下を参考にどうぞ。
Qiita - 【PHP入門講座】 PHPを使うための準備 #テキストエディタの導入
http://qiita.com/mpyw/items/4508dc677b11e487effc …
2. mb_ereg_replace関数を使う
結局正規表現になりますが、すべて漢字を「/」に変換してからという方法で。
str_replaceやpreg_replaceは使えないのでmb_ereg_replace1択になります。
Windows標準の文字セットは「Shift_JIS」ではなく「CP932」なので注意を。
$text = '2014年03月07日';
mb_regex_encoding('CP932');
$text = date('Y年n月j日', strtotime(mb_ereg_replace('[年月日]', '/', $text)));
それかこういう方法でもいいかもしれません。頭のゼロを削除するということで。
$text = '2014年03月07日';
mb_regex_encoding('CP932');
$text = mb_ereg_replace('(?<!\d)0++', '', $text);
お忙しい中、重ね重ねご教授いただきましてありがとうございます。
csvの文字コードがshift_jisになっておりまして、
処理の所で文字化けをしてしまうのが面倒に思ってしまいまして
phpをshift_jisで書いておりました。
csvの文字コードをphp内でutf-8に変換しますと
なぜか文字化けがところどころに発生してしまい
無知なところで上手くいきませんでしたのでphp側をshift_jisで書いておりました。
ご教授いただきました正規表現の方で対応させていただきます。
こちらの意味も勉強します。ありがとうございます。
何度もお時間を割いていただき本当にありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
文字化け変換方法
-
メール送信でFROMの表示が・・
-
php自動返信メール本文の一部の...
-
PHPmailerでの添付ファイルの文...
-
エスケープ文字の復帰(¥r)と...
-
textarea , PHP, 確認画面 改行
-
C言語について。
-
sedでの最短一致の書き方
-
VBAのコマンドボタンの文字列の...
-
変数にHTMLを代入する場合
-
漢字を含んだ正規表現
-
PHPの正規表現の意味を教えて下...
-
Excelで数字のみを2倍3倍にする...
-
MacOSXのgccのprintfで改行が出...
-
文字の入力で横バー上段、中断...
-
PHP 「あいまい検索」を行う関...
-
preg_matchでエラーが出ます。
-
C言語で改行コードを知る
-
VBA ASC関数で変換できない文...
-
テキストファイル内の改行について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
文字化け変換方法
-
SQL Serverで文字コードUTF-8
-
PHPmailerでの添付ファイルの文...
-
SJISで取得した半角カナをUTF-8...
-
UTF8メールがLotus Notesで文字...
-
RSSを取得すると文字化けする。
-
「あ」→「82A0」のようにshift-...
-
【PHP】mb_convert_encoding...
-
メールのCCに複数のアドレスを...
-
postの文字化け防止について
-
PHP+Postgres 「髙」が文字化け
-
SJIS→UTF-8変換後の文字化けに...
-
記号だけの文字化け対応について
-
phpMyAdmin内での文字化け
-
送信したメールのタイトルが無...
-
phpのメールフォームの完了画面...
-
SJISからUTFに変換して...
-
sjisの文字化けとその対処方法...
-
メール題名の文字化け
-
セッションが文字化け、エンコ...
おすすめ情報