Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php-使用strftime格式化时间_Php_Datetime_Date Format_Strtotime_Strftime - Fatal编程技术网

php-使用strftime格式化时间

php-使用strftime格式化时间,php,datetime,date-format,strtotime,strftime,Php,Datetime,Date Format,Strtotime,Strftime,我使用strftime在多语言网站上格式化mysql datetime col中的时间。 我的目标是得到这个,就像“十进制时间”: 而不是sg。就像这样: 06:00pm to 07:30pm 02:15pm to 05:00am 也许有人能帮我 我尝试了以下方法(我的实验源代码): 我相信这应该满足你的要求: function formatDateTime($date = 'now', $format = '%l:%M %P') { $ret = strftime($format,

我使用strftime在多语言网站上格式化mysql datetime col中的时间。 我的目标是得到这个,就像“十进制时间”:

而不是sg。就像这样:

06:00pm to 07:30pm
02:15pm to 05:00am
也许有人能帮我

我尝试了以下方法(我的实验源代码):


我相信这应该满足你的要求:

function formatDateTime($date = 'now', $format = '%l:%M %P') {
    $ret = strftime($format, strtotime($date));
    return str_replace(array('am', 'pm', ':00'), array('a.m','p.m', ''), $ret);
}
用法示例:

echo formatDateTime('1385914593');
echo formatDateTime('08:00:04 AM');
echo formatDateTime('13:26:04');
输出:

5:30 a.m 
8 a.m 
1:26 p.m

您可能需要,或者如果格式取决于时间(在您的示例中是这样的),则必须检查给定的时间并根据它切换格式。我尝试了您的代码,它解决了一半的问题;)我现在可以从早上8点到下午3点30分,但我想让“空分钟”消失:例如,早上8点到下午3点30分,我知道这很好,但我希望不是凌晨2点>凌晨2点(5点30分太好了!),你只需将返回更改为
return str_replace(array('am','pm','00')、array('a.m','p.m','')、'ret即可哦,是的,那太好了!很高兴能帮上忙。干杯!:)
echo formatDateTime('1385914593');
echo formatDateTime('08:00:04 AM');
echo formatDateTime('13:26:04');
5:30 a.m 
8 a.m 
1:26 p.m