我从日志文件中提取日期,但不包括年份。 唯一已知的事实是日期是过去的。可能是1秒前,但不会超过365天。
我喜欢计算年份。
日志文件日期格式为
date('m-d H:i:s');
如果当前日期为2018年4月1日', 日志文件&1; 1月1日'将是2018年1月1日'。
但是,当日志文件日期为
时'20 Dec' I need '20 Dec 2017'
'2 Apr' I need '2 Apr 2017' (as 2 Apr 2018 would be in the future)
'1 Apr' I need '1 Apr 2018' (that's today)
答案 0 :(得分:0)
我建议使用此代码段作为起点:
$today = date('m-d H:i:s');
$dates = array(
'04-20 15:00:00',
'02-03 15:00:00',
'05-12 15:00:00',
'01-14 15:00:00',
'02-15 15:00:00',
);
echo $today.'<br>';
foreach($dates as &$date) {
$exploded = explode(' ',$date);
if($date > $today) {
$date = $exploded[0].'-2017 '.$exploded[1];
echo $date . '<br>';
} else {
$date = $exploded[0].'-2018 '.$exploded[1];
echo $date . '<br>';
}
}
它应输出如下内容:
03-26 11:49:33
04-20-2017 15:00:00
02-03-2018 15:00:00
05-12-2017 15:00:00
01-14-2018 15:00:00
02-15-2018 15:00:00
答案 1 :(得分:0)
你可以尝试这样的事情
function convertMonthStringToInt($strMonth) {
$month = array(
'Jan' => 0,
'Feb' => 1,
'Mar' => 2,
'Apr' => 3,
'May' => 4,
'Jun' => 5,
'Jul' => 6,
'Aug' => 7,
'Sep' => 8,
'Oct' => 9,
'Nov' => 10,
'Dec' => 11,
);
return $month[$strMonth];
}
function findYear($monthLog) {
$currentYear = date('Y');
$currentMonth = date('M');
if(convertMonthStringToInt($monthLog) > convertMonthStringToInt($currentMonth)) {
return $currentYear - 1;
}
else {
return $currentYear;
}
}
然后你可以使用findYear函数找到正确的年份
findYear('Nov'); // 2017
findYear('Jan'); // 2018
findYear('Mar'); //2018
findYear('Aug'); // 2017
等...