首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >日期/字符串比较

日期/字符串比较
EN

Stack Overflow用户
提问于 2014-01-24 19:37:49
回答 2查看 88关注 0票数 0

我需要比较两个日期,其中一个实际上是一个字符串。因此,我从date('d/m/y')获得今天的日期,另一个日期来自我的数据库中的某个地方。这是一个类似'dd/mm/yyyy‘的字符串。

我不知道如何比较它们,我试了一次又一次,但我不能让它工作。下面是代码

代码语言:javascript
复制
<?
  require_once '/web/ticket/src/event/Event.php';
  require_once '/web/ticket/src/ticket/Ticket.php';

  $tickets = Ticket::getTickets();
  $events = Event::getEvents();

  $today = date('d/m/Y');

  foreach($events as $k => $event) {
    $data_1 = $event['data_singolo'];
    $data_2 = $event['data_a'];

    if($today>$data_1 || $today>$data_2) {
       Event::setInvalid($event['_id']);
    } else {
      echo "evento attivo<br><br>";
    }
  }

  foreach($tickets as $k => $ticket) {
    $event = Event::getEventById($ticket['event_id']);
    if($event['valid']==0) {
      Ticket::setInvalid($ticket['_id']);
    }
  }
?>

PS。‘date’表示'date';

EN

回答 2

Stack Overflow用户

发布于 2014-01-24 19:45:37

如果需要特殊的非标准日期格式,则可以使用DateTime类来实现此目的。:)

代码语言:javascript
复制
<?
  require_once '/web/ticket/src/event/Event.php';
  require_once '/web/ticket/src/ticket/Ticket.php';

  $tickets = Ticket::getTickets();
  $events = Event::getEvents();

  $today = new DateTime("today");

  foreach($events as $k => $event) {
    $data_1 = DateTime::createFromFormat("d/m/Y", $event['data_singolo']);
    $data_2 = DateTime::createFromFormat("d/m/Y", $event['data_a']);

    if($today>$data_1 || $today>$data_2) {
       Event::setInvalid($event['_id']);
    } else {
      echo "evento attivo<br><br>";
    }
  }

  foreach($tickets as $k => $ticket) {
    $event = Event::getEventById($ticket['event_id']);
    if($event['valid']==0) {
      Ticket::setInvalid($ticket['_id']);
    }
  }
?>
票数 1
EN

Stack Overflow用户

发布于 2014-02-01 01:09:20

我的代码真的是一团糟,所以我最终得到了这个。

代码语言:javascript
复制
<?
require_once '/web/ticket/src/event/Event.php';
require_once '/web/ticket/src/ticket/Ticket.php';

$tickets = Ticket::getTickets();
$events = Event::getAllValidEvents();

$today = date("d/m/Y");

foreach($events as $k => $event) {
 if($event['tipo_data']=='1') {

  $data_singolo = $event['data_singolo'];
  $data_singolo_chunks = array_map('intval', explode('/', $data_singolo));
  $data_1 = date("d/m/Y", mktime(0, 0, 0, $data_singolo_chunks[1], $data_singolo_chunks[0], $data_singolo_chunks[2]));

  if($today>$data_1) {      
    Event::setInvalid($event['_id']);
  }
} else {

  $data_a = $event['data_a'];
  $data_a_chunks = array_map('intval', explode('/', $data_a));
  $data_2 = date("d/m/Y", mktime(0, 0, 0, $data_a_chunks[1], $data_a_chunks[0], $data_a_chunks[2]));    

  if($today>$data_2) {      
   Event::setInvalid($event['_id']);
  }
}
}

foreach($tickets as $k => $ticket) {
$event = Event::getEventById($ticket['event_id']);
if($event['valid']==0) {
  Ticket::setInvalid($ticket['_id']);
}
}
?>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21331702

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档