首页 > 后端开发 > 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

红色部分代表15年第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天)
请注意表述规则上的差异

一个日期这么隐藏。万一数据变了岂不是很麻烦。最好能写一个到一个function 中。

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
最新问题
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板