Php 使用strotime将日期()格式化为AM/PM

Php 使用strotime将日期()格式化为AM/PM,php,date,strtotime,Php,Date,Strtotime,我写了这行代码,在我的联系我们页面的电子邮件上创建一个格式化的时间戳 它工作得很好,但我想知道它是否写得很差,是否可以简化为更高效的代码?在一行中调用date()三次感觉不对劲。我不是一个专业的开发者 $timestamp = date('m-d-Y')." ".date('h:i A', strtotime(date('H:i:s'))); 结果是:05-28-2014 03:49 PM 想法?当您需要当前时间戳时,可以使用 $timestamp=date("m-d-Y h:i A");

我写了这行代码,在我的联系我们页面的电子邮件上创建一个格式化的时间戳

它工作得很好,但我想知道它是否写得很差,是否可以简化为更高效的代码?在一行中调用date()三次感觉不对劲。我不是一个专业的开发者

$timestamp = date('m-d-Y')." ".date('h:i A', strtotime(date('H:i:s')));
结果是:
05-28-2014 03:49 PM


想法?

当您需要当前时间戳时,可以使用

$timestamp=date("m-d-Y h:i A");
当您需要格式化从数据库或其他方式获取的时间戳时,必须使用
strotime

$format_timestamp=date("Y-m-d H:i:s", strtotime($timestamp)); // I just convert your format to YYYY-MM-DD HH:MM:SS format.
编辑:

如果需要从当前时间减去x小时,请使用

$timestamp=date("m-d-Y h:i A", strtotime("-4 hour"));
再举一些例子,

$timestamp=date("m-d-Y h:i A", strtotime("+2 hour")); // Adds 2 hours
$timestamp=date("m-d-Y h:i A", strtotime("+1 day")); // Adds 1 Day

您可以简化制作:

$timestamp = date('m-d-Y h:i A');

有关详细信息,请参阅:

PHP手册

日期


gmdate

$timestamp=date('m-d-Y h:ia')?似乎我在最初的问题中遗漏了一些有价值的信息:我的实际代码如下:$timestamp=date('m-d-Y')。“”.date('h:ia',strotime(date('h:I:s'))-60*60*4);在格式化之前,从时间(时区转换)中减去4小时。你怎样才能让它变得更好?谢谢。@user3685142对于时区,您不必进行手动转换,您可以查看此项。谢谢您的回答。顺便说一句,我必须在-4小时左右加引号才能让它工作,即:strotime(“-4小时”)@user3685142:这是一个粗心的错误。不过已经纠正了。非常感谢。
$timestamp = gmdate("M d Y H:i:s");