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



我已经添加了创建详细信息的时间戳和日期。时间戳和日期将添加到数据库中。当我将检索它从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"....

现在我需要从数据库检索..我应该如何打印只有名称"abc"没有时间戳和日期??

提前感谢。

更新:(我不能把这个作为答案,因为我的声誉低于100)

找到了我问题的答案:

当我检索它的时候它会以image_path的名字出现,

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

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

试一试……当我这样使用时,我很容易得到答案。

应该将原始图像名称和时间戳信息作为单独的列存储在数据库中。这样,您将始终可以访问每个数据块,并且您可以在插入任何您希望的时间之前将它们连接起来。

你也可以锤你现有的代码提交通过将字符串和计数强调从结束,直到你找到第六(时间戳有5所以结束分离的时间戳的6名),或者您可以简单地删除过去的20字符从名字substr(时间戳是19个字符如果所有数字垫0,+ 1)分离器下划线字符),,但这种解决方案是混乱的,容易破损。我绝不会推荐它,所以我没有给出它的代码(无论如何,剪掉最后20个字符是微不足道的)。

您可以将date替换为regexp:

$imgNameNoDate = preg_replace('#_d{4}_d{2}_d{2}_d{2}_d{2}_d{2}#', '', $imgName);

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

虽然我同意评论者的意见,但将时间戳存储在自己的列中会好得多,下面是您具体需要的方法。

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

找到了我问题的答案:

当我检索它的时候它会以image_path的名字出现,

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

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

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

相关内容

  • 没有找到相关文章

最新更新