【发布时间】:2023-03-22 16:39:01
【问题描述】:
我有一个像8/29/2011 11:16:12 AM 这样的字符串。我想保存在像$dat = '8/29/2011'和$tme = '11:16:12 AM'这样的变量中
如何做到这一点?可以举个例子吗?
【问题讨论】:
我有一个像8/29/2011 11:16:12 AM 这样的字符串。我想保存在像$dat = '8/29/2011'和$tme = '11:16:12 AM'这样的变量中
如何做到这一点?可以举个例子吗?
【问题讨论】:
例如
<?php
$s = '8/29/2011 11:16:12 AM';
$dt = new DateTime($s);
$date = $dt->format('m/d/Y');
$time = $dt->format('H:i:s');
echo $date, ' | ', $time;
见http://docs.php.net/class.datetime
编辑:为了保持 AM/PM 格式使用
$time = $dt->format('h:i:s A');
【讨论】:
您可以使用 strtotime 函数,只要日期在 1970 年 1 月 1 日之后 -
<?php
$s = strtotime('8/29/2011 11:16:12 AM');
$date = date('m/d/Y', $s);
$time = date('H:i:s A', $s);
?>
http://php.net/manual/en/function.strtotime.php
strtotime 根据您传递给它的字符串创建一个 UNIX 时间戳。
【讨论】:
<?php
$date = strtotime('8/29/2011 11:16:12 AM');
$dat = date('m/d/y', $date);
$tme = date('H:m:s A',$date);
?>
有关 date() 函数的更多信息,请访问http://php.net/manual/en/function.date.php
【讨论】:
这可能不是最干净的方法,但您可以使用爆炸(注意这里根本没有验证)。它会比正确的日期操作更快。
$str = '8/29/2011 11:16:12 AM';
$dates = explode(' ', $str);
$dat = $dates[0];
$time = $dates[1];
【讨论】:
如果您的 PHP 版本足够新,请查看 date_parse() 及其返回的数组。然后,您可以使用相关条目格式化日期或时间部分。
【讨论】:
这应该可以解决问题:
$mystring_datetime = ....;
$dt = DateTime::createFromFormat('m/d/Y H:i:s A', $mystring_datetime );
$d = $dt->format('m/d/Y');
$t = $dt->format('H:i:s A');
你也可以这样做,但这不是首选方式:
$mystring_datetime = ....;
list($date, $time) = explode(' ', $mystring_datetime, 2);
现在,$date 和 $time 具有适当的值...
【讨论】:
是的,这是可能的,完美的例子可以在这里找到http://php.net/manual/en/function.date.php
祝你好运,
【讨论】: