<?php
$myFile = strtolower('date.txt');
$lines = file($myFile);
$expire_date = $lines[0];$date = strtotime($expire_date);
//$date->format("y,m,d");
$now = new DateTime();
$now->format("y,m,d");
if($now < $date) {
echo 'Have not reached date yet.';
}else{
echo 'Date in file is old';
}
?>
Содержимое моего файла date.txt —
2018,2,18 (это строка 1)
Тест (это строка 2 в моем файле)
Я хочу сравнить 2018,2,18, строка 1 в файле, с текущей датой. Код постоянно говорит, что дата устарела, когда она явно в будущем. Это потому, что строка 1, хотя и возвращает дату, на самом деле является массивом или не датой?
Ваш strtotime($expire_date)
возвращается FALSE
, Я заменил запятую с тире в строке даты. Также учтите, что я использую time()
функция, которая возвращает текущую метку времени Unix. Я считаю, что дата в вашем файле — это дата UTC.
$myFile = strtolower('date.txt');
$lines = file($myFile);
$date = $lines[0];
$date = str_replace(',', '-', $date);
$date = strtotime($date);
if(time() < $date) {
echo 'Have not reached date yet.';
}else{
echo 'Date in file is old';
}
Или вы также можете создать свою дату из формата в файле:
$myFile = strtolower('date.txt');
$lines = file($myFile);
$date = $lines[0];
$date = date_create_from_format('Y,m,d', $date);
$date = date_format($date, 'Y-m-d');
$date = strtotime($date);
if(time() < $date) {
echo 'Have not reached date yet.';
}else{
echo 'Date in file is old';
}
Других решений пока нет …