日期:2014-05-17  浏览次数:20531 次

一个简单日历程序中的小时运算求解
一个简单的个人日历程序,有一项功能是录入日程或记事,在写入数据表时,小时的运算代码如下,请教红色的代码部分是什么意思?

$evt_pm = (isset($_POST['evt_pm']) && $_POST['evt_pm'] == 'yes');
$evt_hour = (isset($_POST['evt_hour'])) ? (int)$_POST['evt_hour'] : 0;
   
if ($evt_pm)
  {
  $evt_hour += 12;
  }
  if ($evt_hour == 24)
{
$evt_hour = 12;
}
else if ($evt_hour == 12)
{
$evt_hour = 0;
}

// 写入数据库
  $query = sprintf('INSERT INTO %sCALENDAR (EVENT_NAME, EVENT_TSTAMP, ' . 
  'NOTIFY) VALUES ("%s", "%04d-%02d-%02d %02d:%02d:00", %d)',
  DB_TBL_PREFIX,
  mysql_real_escape_string($evt_name, $GLOBALS['DB']),
  $year, $month, $day,
  $evt_hour, $evt_min,
  $evt_notify);


提交日程的表单如下:
 //小时选择
  <select name="evt_hour" id="evt_hour">
  <option value="12">12</option>
<?php

  for ($i = 1; $i < 12; $i++)
  {
  printf('<option value="%d">%02d</option>', $i, $i);
  }
?>
  </select>
 
 //分钟选择
<select name="evt_min">
<?php
  for ($i = 0; $i < 59; $i += 15)
  {
  printf('<option value="%d">%02d</option>', $i, $i);
  }
?>
  </select>

 //上下午选择
  <select name="evt_pm">
  <option value="no">AM</option>
  <option value="yes">PM</option>
  </select>
 

------解决方案--------------------
我只看了红色的部分,我猜应该是 24小时的变成12点 12小时的变成0点 也就是 24小时制变成12小时时间?哈哈
------解决方案--------------------
存储时间格式 这个根据自己爱好
------解决方案--------------------
理解时间格式就明白拉。