2014-02-04 3 views
0
<td valign="bottom"> 
    <div style="width: 205px;height: 21px;border: 1px solid;"> 
     <div style="height: 21px;background-color:#5f5f5f; width:<?=$width?>"></div> 
     </div><br> 
     <span style="font-size:11px;">*Valid for 1 year from the date of purchase</span> 
</td> 

Это код PHP, показывающий панель истечения срока действия. Он покажет, сколько месяцев осталось в учетной записи пользователя. У меня есть база данных, из которой я могу извлечь дату, когда пользователь присоединился. Предположим, что пользователь присоединился к 2014-1-21, затем через месяц ширина должна составлять 10%. Как я могу получить разницу между двумя датами в днях, чтобы я мог проверить и решить, какова должна быть ширина бара.использование срока действия срока действия с двух дат

+0

Вы должны смотреть на функции даты/времени в PHP, specifcally 'diff': HTTP://www.php.net/manual/en/datetime.diff.php – ElendilTheTall

+0

Какую базу данных вы используете? MySQL, MSSQL? –

+0

Вот такой вопрос, который может помочь: http://stackoverflow.com/questions/2681548/find-month-difference-in-php – Gohn67

ответ

0
SELECT DATEDIFF(DATE(NOW()),DATE(column_name)) AS diff FROM table_name 
0

Вместо того, чтобы делать вычисления в PHP, вы можете сделать это непосредственно в Mysql.
Здесь я дал 2014-1-21 в качестве даты присоединения пользователя для пользователя в вашем запросе, вы можете указать field_name и запустить запрос, вы получите разницу в днях. Вы можете попробовать так:

SELECT DATEDIFF(now(),'2014-1-21 00:00:00') as Diff from tableName 

Для получения дополнительной информации об этой функции: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_datediff

Если вы хотите разницу Месяца между двумя датами. вы можете сделать так:

SELECT PERIOD_DIFF(concat(year(now()),Month(now())), 
      concat(year('2014-1-21 00:00:00'),month('2014-1-21 00:00:00') 
        )); 

Для получения дополнительной информации http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_period-diff

Sql скрипку: http://sqlfiddle.com/#!2/a2581/20277

+0

Будет ли это работать, если он хочет пройти несколько месяцев? Похоже, DateDiff возвращает дни? Конечно, я могу ошибаться. Трудно понять вопрос на самом деле ... – Gohn67

+0

Чем будет отличаться запрос. –

Смежные вопросы