PHP将冒号添加到字符串中

时间:2011-06-16 23:16:00

标签: php count add

您好我有这个字符串,它会生成我在db

中插入的时间
$time=mktime(date('G'),date('i'),date('s'));
$NowisTime=date('Gis',$time);

现在我需要读取该字符串的冒号::

我需要在没有冒号的情况下生成和插入它,但是在重新插入冒号的另一个地方显示,所以它看起来像这样:

13:24:09

而不是:

132409

同样适用于$todaydate = date('Ymd');

那应该成为2011-06-16

我该怎么做?

计算单词并不好,因为根据实际时间和日期我们可以有更多或更少的类型。

请告知

谢谢!

对于谁不理解:这些值取自DB,所以我不能使用:date('Y-m-d');取自db ........

的值

7 个答案:

答案 0 :(得分:2)

  

同样适用于$ todaydate =   日期( 'YMD');

     

那应该成为当时的2011-06-16

对于这个,请尝试:

date('Y-m-d');

与您的其他部分相似。

编辑:: 对于日期:

$ time =“来自数据库的时间”; $ unixtimestamp = strtotime($ time); $ date = date('Y-m-d',$ unixtimestamp);

时间:

$time = strtotime("time from database"); 
$yourtime = date("H:i:s", $time);

答案 1 :(得分:2)

您提供的用于格式化的字符串可以包含您想要的任何内容,因此将破折号或分号放在那里没有问题。您甚至可以包含其他文本,只要日期代码中使用的任何字母都使用反斜杠进行转义。

整个

$time=mktime(date('G'),date('i'),date('s'));
$NowisTime=date('Gis',$time);

也可以改写。您正在编制当前时间的时间戳,然后将其提供给date()date默认使用当前时间,因此无需显示当前时间。

这是一种方式:

$NowisTime=date('G:i:s');

答案 2 :(得分:2)

如果您正在按照自己的意思行事,可以从最后开始计算字符数,并在正确的位置添加字符(:-):

date('is')date('Ymd')都使用前导零生成固定格式,因此长度始终相同。您只需要补偿date('G')部分。

所以你真的需要做的就是从字符串末尾剪掉2个字符两次,剩下的就是年份或小时。

答案 3 :(得分:2)

如果您使用date('his')代替并将其转换为字符串(因此PHP不会将其解释为整数并删除可能的前导零),您可以通过每两个数字拆分字符串来添加冒号然后用冒号爆炸。

$d = (string)date( 'his' );
echo (int)$d; //Format without colons
echo implode( ':', array_map('intval', str_split( $d, 2 ) ) );

对于第二部分,除了将字符串拆分为4个字符,然后将第二个拆分拆分为2之外,执行相同操作。

$d = date('Ymd');
echo $d; //Format without dashes
list($year, $second) = str_split( $d, 4 );
$parts = str_split( $second );
array_unshift( $parts, $year );
echo implode( '-', $parts );

在这两种情况下,使用格式化的字符串(使用冒号和破折号)开始更容易,并为数据库删除它们。

$d = date('G:i:s');
echo $d; //With colons
echo str_replace( ':', '', $d );

$d = date('Y-m-d');
echo $d; //With dashes
echo str_replace( '-', '', $d );

答案 4 :(得分:2)

你不能做类似的事情:

$new = "";
for ($i = 2; $i <= strlen($NowisTime); $i+2) {
    $new .= $NowisTime[$i-2] . $NowisTime[$i-1] . ":";
}

答案 5 :(得分:2)

在生成要存储在数据库中的值时,请使用Unix时间戳:

$timestamp = time();
// store $timestamp in your database

这样你就不必担心它的外观或解析方式了。然后,当您准备好将其显示给用户时,您可以使用:

$formattedTime = date('G:i:s', $timestamp);

将为您的用户显示殖民地(甚至是单词?)格式。

答案 6 :(得分:1)

$NowisTime=date('G:i:s',$time);
$todaydate = date('Y-m-d');