如何从字符串中删除时间戳和日期

时间:2011-07-12 13:21:08

标签: php datetime

我在细节创建时添加了时间戳和日期。时间戳和日期将添加到数据库中。当我从db检索它时,它想要只显示没有时间戳和日期的字符串名称?如何制作?

添加方法....

   $imagename = $_POST['imagename'];
   $imageNameExt = $_POST['imageNameExt'];
   $newImgName = trim($imagename).'_'.date('Y_m_d_H_i_s').'.'.trim(strtolower($imageNameExt));

   Here consider the $imagename = "abc"; and $imageNameExt = "jpg"; when it'll insert into db the name as $newImgName = "abc_2011_07_12_18_47_02.jpg"....

现在我需要从db中检索。如果我只打印出名称“abc”而没有时间戳和日期?

提前致谢。

更新:(我无法发布此信息作为答案bcoz在100声誉下。)

找到了我的问题的答案:

在检索它时,它将以image_path的名义出现,

$image_path = $rows[0];
$tmp = "_".date('Y');
$ImgOrgName = explode($tmp,$image_path);
$ImgOrgName_core = $ImgOrgName[0];

图像名称“abc”将出现在字符串“$ ImgOrgName_core”中。

尝试一下......当我像这样使用时,我很容易得到答案。

4 个答案:

答案 0 :(得分:0)

您应将原始图像名称和时间戳信息存储为数据库中的单独列。通过这种方式,您可以随时访问每个数据,并且可以在插入任何数据之前将它们连接起来。

您也可以通过简单地获取字符串并从末尾计算下划线直到找到第6个(时间戳中有5个,因此最后的第6个将时间戳与名称分开),或者将现有代码锤入提交中,或者您可以使用substr从名称中删除最后20个字符(如果所有数字都用零填充,则时间戳为19个字符,加上分隔符下划线的1个字符),但是这种解决方案很麻烦并且容易破损。我永远不会推荐它,所以我不给它代码(无论如何,切掉最后20个字符是微不足道的。)

答案 1 :(得分:0)

你用正则表达式替换日期:

$imgNameNoDate = preg_replace('#_\d{4}_\d{2}_\d{2}_\d{2}_\d{2}_\d{2}#', '', $imgName);

但更好的方法是更改​​数据库以存储原始名称和日期时间信息。

答案 2 :(得分:0)

虽然我同意评论者的意见,将时间戳存储在自己的专栏中会更好,更好,这里是如何专门做你想要的。

$underscorePos = strpos($imageNameFromDB, '_');
if ($underscorePos !== false)
{
    $imageNameOnly = substr($imageNameFromDB, 0, $underscorePos);
}

答案 3 :(得分:0)

找到了我的问题的答案:

在检索它时,它将以image_path的名义出现,

$image_path = $rows[0];
$tmp = "_".date('Y');
$ImgOrgName = explode($tmp,$image_path);
$ImgOrgName_core = $ImgOrgName[0];

图像名称“abc”将出现在字符串“$ ImgOrgName_core”中。

检查一下......当我这样使用时,我很容易得到答案。