我正在从表中提取数据到csv文件。
要打印日期字段时,我需要转换为dd/mm/yyyy
。
这是我试过的代码
$result = mysql_query($sqlquery);
while ($row = mysql_fetch_assoc($result)) {
foreach ($row as $key => $value) {
$key = trim($value);
$key = str_replace(',', ' ', $key); //remove any commas, as they stuff up excel.
//Is this a date field? if so convert it to dd/mm/yyyy
print "$key" . ",";
}
if ($key > "") fputcsv($output, array(''));
}
答案 0 :(得分:1)
最简单的方法是检查值是否为日期格式,因为mysql_fetch_assoc不包含字段类型信息。
if(preg_match('/^\d{4}-\d{2}-\d{2}$/',$value)) {
print "$key" . "," . date('d/m/Y',strtotime($value));
}
这将检查$ value是否为四位数字,短划线,两位数,另外两位数(yyyy-mm-dd),如果是,则使用strtotime函数将值转换为时间戳,date函数用于格式化日期字符串。
顺便说一句,不推荐使用mysql_ *函数,你应该使用mysqli或PDO。
答案 1 :(得分:0)
试试这个
list($year, $month, $day) = explode('[-.]', $date);
$date = "$day/$month/$year";