ホームページ > バックエンド開発 > PHPチュートリアル > 正しい時刻形式を見つける

正しい時刻形式を見つける

WBOY
リリース: 2016-06-20 12:56:10
オリジナル
1508 人が閲覧しました

$s = 'Y1320101000000XP1026629512V544930568T6B15120K20000028';$mtime = date("Ymd",mktime(0,0,0,1,1,'20'.substr($s,-14,2)) + substr($s,-12,3) * 86400)-1;echo $mtime; //得到结果是20150500
ログイン後にコピー


20150430 の結果を取得したいのですが、それを変更するにはどうすればよいですか?

注: Y1320101000000XP1026629512V544930568T6B 15120K20000028

赤い部分は 2015 年の 120 日目を表します。



ディスカッションへの返信 (解決策)

$s = 'Y1320101000000XP1026629512V544930568T6B15120K20000028';$mtime = strtotime('20'.substr($s,-14,2).'-00-00') + (substr($s,-12,3) * 86400);echo date('Y-m-d',$mtime);//2015-03-30
ログイン後にコピー
ログイン後にコピー

$s = 'Y1320101000000XP1026629512V544930568T6B15120K20000028';$mtime = strtotime('20'.substr($s,-14,2).'-00-00') + (substr($s,-12,3) * 86400);echo date('Y-m-d',$mtime);//2015-03-30
ログイン後にコピー
ログイン後にコピー


結果は間違っていましたが、アイデアをありがとう。
$s = 'Y1320101000000XP1026629512V544930568T6B15151K20000028';$mtime = strtotime('20'.substr($s,-14,2).'-01-01') + (substr($s,-12,3) * 86400)-1;echo date('Ymd',$mtime);
ログイン後にコピー

$s = 'Y1320101000000XP1026629512V544930568T6B15120K20000028';$mtime = date("Ymd", mktime(0, 0, 0, 1, substr($s,-12,3), substr($s,-14,2)));$d = $mtime;echo date("$d z", strtotime($d));
ログイン後にコピー
20150430 119

'20' はオプションです。追加しても問題ありません

date('z') は年を意味します(1月1日が0日なので注意)
表現ルールの違いに注意してください

日付が隠されています。データが変わってしまったら大変ではないでしょうか?関数に記述するのが最善です。

echo get_str_date('15140');function get_str_date($str){	$y = substr(date('Y'),0,2);	$date_str = strtotime($y.substr($str,0,2).'-01-01') + (substr($str,-3,3) * 86400)-1;	return date('Y-m-d',$date_str);}
ログイン後にコピー

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート