任何人都可以给我一个代码来隐藏字符串中的时间戳。 我用这段代码从字符串中获取日期 假设
$date_string = "02/06/2011 11:00 am - 2:00 pm";
$date = strtotime($date_string);
$date = date('m/d/y', $date);
但我得到的输出就是这样的
1/1/70
请建议一个更好的方法,我可以实现这个工作 我希望它显示像
02/06/2011
答案 0 :(得分:4)
如果您要查找的日期已经在字符串中,并且您要做的就是删除时间范围,则不需要任何日期操作。只需删除空格后的所有内容(假设date_string
的格式保持一致)。
$date_string = "02/06/2011 11:00 am - 2:00 pm";
$date = explode(" ",$date_string);
echo $date[0];
甚至更简单(但未经测试)
echo strtok($date_string," "); //http://codepad.org/Or1mpYOp
答案 1 :(得分:3)
$date = strtotime($date_string);
$date = getdate($date);
$date = $date['mon'] . '/' . $date['mday'] . '/' . $date['year']
答案 2 :(得分:1)
如果显示的是02/06/2011 11:00 am - 2:00 pm
,则显示$date_string
而不是$date
,因为strtotime('02/06/2011 11:00 am - 2:00 pm');
返回布尔值false,date('m/d/y', $date)
会转换到01/01/1970
。
尝试这样的事情
$date_string = "02/06/2011 11:00 am - 2:00 pm";
$date_exploded = explode('-',$date_string);
$date = strtotime($date_exploded[0]);
$date = date('m/d/y', $date);
echo $date;
答案 3 :(得分:0)
撇开日期解析中某些事情出错的事实,您需要注意使用00/00/00 [00]的日期格式是相当暧昧的 - 在美国这样写的日期是格式为mm / dd / yy [yy],而在英国则将其解释为dd / mm / yy [yy]。 strtotime函数不使用语言环境设置来确定哪个适用并始终采用前者。
如果我被要求解析这个,我会使用preg来提取日期部分。使用模式:
/([0-9]{1,2})\/([0-9]{1,2})\/([0-9]{2,4})/
给出一个数组
0=> 02/06/2011
1=> 02
2=> 06
3=> 2011
然后使用mktime生成unix timstamp。
其他方法包括使用substr提取固定长度的字符串,或者按空格划分以获取单词。
答案 4 :(得分:0)
如果您的字符串已经是日期。
$ date = substr($ records [$ datetime,0,10];