Php 需要将字符串更改为日期
我有一些计时字符串,比如Php 需要将字符串更改为日期,php,Php,我有一些计时字符串,比如 $timing_strings =array(1=>'just now', 2=>'3 minutes ago', 3=>'3 weeks ago'); 问题是我想将这种类型的字符串更改为特定的日期时间格式。我该怎么做。。?我需要一个输出,比如 array( 1=>'2013-10-04 06:24:24', 2=>'2013-10-04 06:21:24', 3=>'2013-09-14 06:24:24' ); 我找不到任何解
$timing_strings =array(1=>'just now', 2=>'3 minutes ago', 3=>'3 weeks ago');
问题是我想将这种类型的字符串更改为特定的日期时间格式。我该怎么做。。?我需要一个输出,比如
array(
1=>'2013-10-04 06:24:24',
2=>'2013-10-04 06:21:24',
3=>'2013-09-14 06:24:24'
);
我找不到任何解决方案,任何想法都值得赞赏。提前感谢您有两个独立的问题:解析字符串到日期和转换值 解析迄今为止的字符串最终是一个复杂的问题。
strotime
和DateTime
可以解析大多数日期格式,但不是全部。
例如,它们不会解析“刚才”。
当然,您可以使用自己的硬编码值来扩展它
不过,转换值很简单:
array_map(
function ($dateString) {
if ($dateString === 'just now') {
$dateString = 'now';
}
return (new DateTime($dateString))->format('Y-m-d H:i:s');
},
$timing_strings
);
您有两个独立的问题:解析字符串到日期和转换值 解析迄今为止的字符串最终是一个复杂的问题。
strotime
和DateTime
可以解析大多数日期格式,但不是全部。
例如,它们不会解析“刚才”。
当然,您可以使用自己的硬编码值来扩展它
不过,转换值很简单:
array_map(
function ($dateString) {
if ($dateString === 'just now') {
$dateString = 'now';
}
return (new DateTime($dateString))->format('Y-m-d H:i:s');
},
$timing_strings
);
您应该能够使用转换大多数时间字符串您应该能够使用转换大多数时间字符串请尝试以下操作:
<?
$timing_strings =array(1=>'just now', 2=>'3 minutes ago', 3=>'3 weeks ago');
foreach ($timing_strings as $time){
if ($time == 'just now') $time = 'now';
$arrTime[] = date("Y-m-d H:i:s",strtotime($time));
}
print_r($arrTime);
?>
试试这个:
<?
$timing_strings =array(1=>'just now', 2=>'3 minutes ago', 3=>'3 weeks ago');
foreach ($timing_strings as $time){
if ($time == 'just now') $time = 'now';
$arrTime[] = date("Y-m-d H:i:s",strtotime($time));
}
print_r($arrTime);
?>
使用了以下代码:
<?php
$timing_strings =array(1=>'just now', 2=>'3 minutes ago', 3=>'3 weeks ago');
$new_arr=array();
foreach ($timing_strings as $time) {
$new_arr[] = check_time($time);
}
echo "<pre>";
print_r($new_arr);
echo "</pre>";
exit;
function check_time($time) {
if (strpos($time,'just now') !== false) {
return date("Y-m-d H:i:s",strtotime('now'));
}elseif (strpos($time,'minutes ago') !== false) {
return date("Y-m-d H:i:s",strtotime('-'.(int)$time.' minutes'));
}elseif (strpos($time,'weeks ago') !== false) {
return date("Y-m-d H:i:s",strtotime('-'.((int)$time*7).' days'));
}
}
使用此代码:
<?php
$timing_strings =array(1=>'just now', 2=>'3 minutes ago', 3=>'3 weeks ago');
$new_arr=array();
foreach ($timing_strings as $time) {
$new_arr[] = check_time($time);
}
echo "<pre>";
print_r($new_arr);
echo "</pre>";
exit;
function check_time($time) {
if (strpos($time,'just now') !== false) {
return date("Y-m-d H:i:s",strtotime('now'));
}elseif (strpos($time,'minutes ago') !== false) {
return date("Y-m-d H:i:s",strtotime('-'.(int)$time.' minutes'));
}elseif (strpos($time,'weeks ago') !== false) {
return date("Y-m-d H:i:s",strtotime('-'.((int)$time*7).' days'));
}
}
是否可以使用
strotime
转换字符串,如刚才的
,应该是,我链接到了文档。不是所有的字符串都能正常工作好的……那么我想我需要编写一些提取单词的条件,比如now、week等,然后用strotime
进行更改。我说的对吗……??是否可以使用strotime
转换字符串,比如刚才的,应该是这样的,我链接到了文档。不是所有的字符串都能工作好吧……那么我想我需要写一些提取单词的条件,比如现在、星期等等,然后用strotime
。我说得对吗…?@SherinJose这是我的荣幸:)@SherinJose这是我的荣幸:)