日期格式应为cst

时间:2014-03-06 11:33:27

标签: php cakephp-2.3

我在数据库“2014-03-06 16:23:33”中有约会。我想展示“2014年3月6日下午04:23:33 CST”。使用cakephp。

例如:

$this -> Html -> cDate ($courseLog['CourseLog']['completed_time'],'datetimes');

感谢Adv。

尽快回答。

1 个答案:

答案 0 :(得分:0)

更新
虽然我最初表示我不确定CakePHP是否有一个特定的助手,我现在几乎完全确定他们 。 他们自己的文档只提到DateTime类和link to the PHP docs
并且github搜索任何名为cDate shows up emptyCDATA的内容都是完全不同的......


作为我的评论的后续内容,我将删除,但为了完整性,请在此处添加:

我不知道CakePHP是否有特定的帮助,但是

$date = new DateTime($yourDateString);
$date->format(DATE_RFC820);

应该很接近。根据您的需要Compose your own format,或查看the predefined constants随时可用。

好的,DATE_RFC850常量与您正在寻找的格式以及字符串操作完全匹配(如substrexplode - {{ 1}}电话)只是单调乏味,看起来凌乱和业余。但只需看一下格式参数! 我怀疑你实际上在寻找这样的东西:

implode

从您知道并期望的格式创建$date = new DateTime($courseLog['CourseLog']['completed_time']); $asString = $date->format('M d, Y h:i:s A e'); 实例可能更安全。您知道字符串的格式,因此您也可以使用静态方法DateTime::createFromFormat

DateTime

正如您所看到的from this codepad,这非常有效......

格式说明:

  • $date = DateTime::createFromFormat( 'Y-m-d H:i:s', //yyyy-mm-dd hh:mm:ss format $courseLog['CourseLog']['completed_time']//the string to parse ); $asString = $date->format('M d, Y h:i:s A e'); echo $asString, PHP_EOL; :月份的简短文字表示,M给出了整整一个月
  • F:2位数(带前导零)表示当天,更改为d以删除前导零
  • j:4位数年份,而Y则为2位数
  • y:带有前导零的12小时,h会丢弃前导零。大写两种格式都可获得24小时版本
  • g:分钟,带前导零
  • i:秒,带前导零
  • s:上午或下午,更改为A以获取上午下午
  • a:时区标识符,备选方案为e(时区缩写)或TO(两者与GMT的差异均为小时,P在小时和分钟之间添加冒号(+0400 vs +04:00)

总的来说,PHP附带了P对象,它已经提供了一种处理日期和时间的可靠方法,我建议您只使用 core 对象。无论CakePHP提供什么,它很可能只是the DateTime and its related classes

的包装
相关问题