选择时间和上午或下午

时间:2010-08-25 04:07:34

标签: php

我有一个主要形式的时间选项值和上午或下午的另一个选项...现在让我感到困惑的是我如何编码它,如果我选择1然后下午...我怎么样? goin在数据库上调用它?我还必须按时间和下午过滤销售报告..希望有人可以帮助我...谢谢

2 个答案:

答案 0 :(得分:0)

您可以将AM / PM设置为大写A或小写a,具体取决于您对资本AM / PM的偏好或小写am / pm。至于你如何与数据库交互的问题,你的插入时间应该是未经编辑的,IE你不想应用日期函数的样式并将其作为字符串插入到数据库中,因为这会阻止你改变它在未来。而是在表格中创建DATETIME或TIMESTAMP列,并将日期放在其中,然后当您从表格中选择时,您可以应用样式以满足您的需求。

http://dev.mysql.com/doc/refman/5.0/en/datetime.html

http://www.php.net/manual/en/function.date.php

答案 1 :(得分:0)

从数据库到显示

PHP函数[date()][1]可用于将Unix时间戳转换为人类可读形式。

<?php
// $time is assumed as a Timestamp from DB or other
echo date( 'g:i:sa, l jS F Y' , $time );
?>
Will Return
3:43pm, Wednesday 25th August 2010

或者,您可以使用执行类似角色的[strftime()][2],但具有不同的占位符(它还缺少“st”,“nd”,“th”在日期编号后的占位符)。此功能的好处是您可以在格式中包含纯文本,因为所有占位符都以“%”为前缀 - 因此“hello”不会被视为占位符。

<?php
// $time is assumed as a Timestamp from DB or other
echo strftime( '%l:%M:$S%P, %A %e %B %Y' , $time );
?>
Will Return
3:43pm, Wednesday 25 August 2010

将用户输入的数据转换为数据库格式

我使用的大多数数据库都非常了解它们如何处理时间戳。您需要做的就是,如果有多个字段被使用(即一个用于小时,一个用于分钟,一个用于上午/下午),将它们连接成一个字符串,并确保生成的字符串是一种可以由PHP解析的格式。

函数strtotime()可以将人类可读的时间转换为Unix时间戳,数据库应该能够毫无问题地处理它。

<?php
// $input is the string (joined or solo) containing the Human-readable timestamp
$input = "2010/08/25 3:43pm";
if( ( $out = strtotime( $input ) )===false ){
  echo 'Timestamp "'.$input.'" Unrecognisable';
}else{
  echo $out;
}
?>
Will Return
1282743780

如果根据PHP Date Time Formats无法识别正在解析的字符串,则它将返回false。