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

Php 如何从字符串中删除时间戳和日期,php,datetime,Php,Datetime,我添加了时间戳和创建细节的日期。时间戳和日期将添加到数据库中。当我从db中检索它时,它想只显示没有时间戳和日期的字符串名吗?怎么做 添加方法 $imagename = $_POST['imagename']; $imageNameExt = $_POST['imageNameExt']; $newImgName = trim($imagename).'_'.date('Y_m_d_H_i_s').'.'.trim(strtolower($imageNameExt));

我添加了时间戳和创建细节的日期。时间戳和日期将添加到数据库中。当我从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”而不打印时间戳和日期

提前谢谢

更新:(我无法将此作为答案发布,因为我的声誉低于100。)


找到了我问题的答案:

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

$image_path = $rows[0];
$tmp = "_".date('Y');
$ImgOrgName = explode($tmp,$image_path);
$ImgOrgName_core = $ImgOrgName[0];
$image_path = $rows[0];
$tmp = "_".date('Y');
$ImgOrgName = explode($tmp,$image_path);
$ImgOrgName_core = $ImgOrgName[0];
图像名称“abc”将出现在字符串“$ImgOrgName_core”中


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

您应该将原始图像名称和时间戳信息作为单独的列存储在数据库中。通过这种方式,您将始终能够访问每一段数据,并且您可以在插入任何时间之前,按照当前的方式连接它们


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

您可以用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];
$image_path = $rows[0];
$tmp = "_".date('Y');
$ImgOrgName = explode($tmp,$image_path);
$ImgOrgName_core = $ImgOrgName[0];
图像名称“abc”将出现在字符串“$ImgOrgName_core”中


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

如果可以选择的话,您应该在数据库中存储它,而不使用时间戳。我可以问您为什么要将时间戳与图像名称合并?为什么不将日期保存在数据库表的其他列中?因为有很多机会添加w当多个用户登录我的站点时,使用相同的文件名。。。。