【发布时间】:2009-04-22 05:01:18
【问题描述】:
复制
亲爱的,
我有一个 PHP 页面,我将在其中显示来自 Mysql db 的一些数据。 我有 2 个日期要显示在此页面上。在我的 db 表中,日期 1 的格式为 d/m/Y(例如:2002 年 11 月 11 日),日期 2 的格式为 d-m-Y(例如:11-11- 2002) 我需要以相同的格式显示这两者。我存储在变量 $dateFormat='m/d/Y' 中的格式
谁能指导我
提前致谢
【问题讨论】:
复制
亲爱的,
我有一个 PHP 页面,我将在其中显示来自 Mysql db 的一些数据。 我有 2 个日期要显示在此页面上。在我的 db 表中,日期 1 的格式为 d/m/Y(例如:2002 年 11 月 11 日),日期 2 的格式为 d-m-Y(例如:11-11- 2002) 我需要以相同的格式显示这两者。我存储在变量 $dateFormat='m/d/Y' 中的格式
谁能指导我
提前致谢
【问题讨论】:
使用strtotime 将字符串转换为Unix 时间戳,然后使用date 函数生成正确的输出格式。
由于您使用的是英国日期格式“d/m/Y”,而 strtotime 需要一种美国格式,因此您需要稍微不同地对其进行转换:
$date1 = "28/04/2009";
$date2 = "28-04-2009";
function ukStrToTime($str) {
return strtotime(preg_replace("/^([0-9]{1,2})[\/\. -]+([0-9]{1,2})[\/\. -]+([0-9]{1,4})/", "\\2/\\1/\\3", $str));
}
$date1 = date($dateFormat, ukStrToTime($date1));
$date2 = date($dateFormat, ukStrToTime($date2));
【讨论】:
你应该已经准备好了:
echo date($dateFormat, strtotime($date1));
echo date($dateFormat, strtotime($date2));
【讨论】:
如果由于某种原因 strtotime 对你不起作用,总是可以用 str_replace 替换有问题的标点符号。
function dateFormat($date) {
$newDate = str_replace(/, -, $date);
echo $newDate;
}
echo dateFormat($date1);
echo dateFormat($date2);
我知道这会让大多数人感到畏缩,但它可能会帮助您在未来格式化非日期字符串。
【讨论】:
我是菜鸟。所以想出了这样做的方法。什么 mysql 需要.. shish 我使用了参数 2 ...希望它有帮助。问候
public function dateConvert($date,$param){
if($param==1){
list($day,$month,$year)=split('[/.-]',$date);
$date="$year-$month-$day"; //changed this line
return $date;
}
if ($param == 2){ //output conversion
list($day,$month,$year) = split('[/.]', $date);
$date = "$year-$day-$month";
return $date;
}
}
【讨论】: