PHP/MySQL: 列出并分解多个字符
PHP/MySQL: list And explode Multiple Characters
这是我已经完成的大部分工作,我想知道是否有一种方法可以清理代码并使其正常运行。
我有一个 table,其中包含用户加入的日期和时间 (YYYY-MM-DD HH:MM:SS)。我想拆分各种值,所以我使用了 list
explode
函数,但只能拆分一组值:
$joined = $row ["joined"]; // <- "2008-06-03 15:01:08"
list ($year, $month, $day) = explode ("-", $joined);
list ($hour, $minute, $second) = explode (":", $joined);
list ($seperation) = explode (" ", $joined);
echo $joined . "<br>\n";
echo $year . "<br>\n";
echo $month . "<br>\n";
echo $day . "<br>\n";
echo $hour . "<br>\n";
echo $minute . "<br>\n";
echo $second . "<br>\n";
输出如下:
2008-06-03 15:01:08 ($joined)
2008 ($year)
06 ($month)
03 15:01:08 ($day)
2008-06-03 15 ($hour)
01 ($minute)
08 ($second)
我想知道如何拆分 3 个字符(破折号、冒号和 space)以便能够正确使用变量并使其看起来像下面这样:
2008-06-03 15:01:08 ($joined)
2008 ($year)
06 ($month)
03 ($day)
15 ($hour)
01 ($minute)
08 ($second)
尝试以下操作:
$year = date("Y", strtotime($joined));
$month = date("m", strtotime($joined));
$day = date("d", strtotime($joined));
$hour = date("H", strtotime($joined));
$minute = date("i", strtotime($joined));
$second = date("s", strtotime($joined));
或更好的解决方案:
$date = getdate(strtotime($joined));
处理日期时最好使用日期解析而不是 explode
或正则表达式。上面使用strtotime()
将日期字符串转换为Unix时间戳,然后根据日期模式输出。
第二个解决方案要好得多,因为它 returns 是时间字段的关联数组。
但如果你真的想使用 list()
和 explode
,这里有一个解决方案。
list($date, $time) = explode(" ", $joined);
list ($year, $month, $day) = explode ("-", $date);
list ($hour, $minute, $second) = explode (":", $time);
先把日期和时间分开,然后再分别用explode
。
这是我已经完成的大部分工作,我想知道是否有一种方法可以清理代码并使其正常运行。
我有一个 table,其中包含用户加入的日期和时间 (YYYY-MM-DD HH:MM:SS)。我想拆分各种值,所以我使用了 list
explode
函数,但只能拆分一组值:
$joined = $row ["joined"]; // <- "2008-06-03 15:01:08"
list ($year, $month, $day) = explode ("-", $joined);
list ($hour, $minute, $second) = explode (":", $joined);
list ($seperation) = explode (" ", $joined);
echo $joined . "<br>\n";
echo $year . "<br>\n";
echo $month . "<br>\n";
echo $day . "<br>\n";
echo $hour . "<br>\n";
echo $minute . "<br>\n";
echo $second . "<br>\n";
输出如下:
2008-06-03 15:01:08 ($joined)
2008 ($year)
06 ($month)
03 15:01:08 ($day)
2008-06-03 15 ($hour)
01 ($minute)
08 ($second)
我想知道如何拆分 3 个字符(破折号、冒号和 space)以便能够正确使用变量并使其看起来像下面这样:
2008-06-03 15:01:08 ($joined)
2008 ($year)
06 ($month)
03 ($day)
15 ($hour)
01 ($minute)
08 ($second)
尝试以下操作:
$year = date("Y", strtotime($joined));
$month = date("m", strtotime($joined));
$day = date("d", strtotime($joined));
$hour = date("H", strtotime($joined));
$minute = date("i", strtotime($joined));
$second = date("s", strtotime($joined));
或更好的解决方案:
$date = getdate(strtotime($joined));
处理日期时最好使用日期解析而不是 explode
或正则表达式。上面使用strtotime()
将日期字符串转换为Unix时间戳,然后根据日期模式输出。
第二个解决方案要好得多,因为它 returns 是时间字段的关联数组。
但如果你真的想使用 list()
和 explode
,这里有一个解决方案。
list($date, $time) = explode(" ", $joined);
list ($year, $month, $day) = explode ("-", $date);
list ($hour, $minute, $second) = explode (":", $time);
先把日期和时间分开,然后再分别用explode
。