Как я могу сравнить дату из текстового файла с сегодняшней датой

<?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, хотя и возвращает дату, на самом деле является массивом или не датой?

0

Решение

Ваш 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';
}
1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector