我使用下一个代码从数据库中的表中检索数据:
$check_sql = 'SELECT personID, name, DATE_FORMAT(persons.birthdate, "%d de %M, %Y"), birthplace, countryID FROM persons WHERE personID = ?';
if ($stmt->prepare($check_sql)) {
$stmt->bind_param('i', $pid);
$stmt->bind_result($personDB, $name, $birthdate, $birthplace, $countryID);
$stmt->execute();
$stmt->fetch();
}
您可以看到,同时我使用DATE_FORMAT()MySQL函数将日期从'birthdate'列格式化为更友好的显示。现在,我想用西班牙语显示月份全名,所以我想在查询中插入SET lc_time_names = 'es_ES'
..
我该怎么办?我可以将SET lc_time_names
添加到$ check_sql变量吗?
谢谢!
答案 0 :(得分:5)
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
$mysqli->query("SET lc_time_names = 'es_ES'");
$check_sql = 'SELECT personID, name, DATE_FORMAT(persons.birthdate, "%d de %M, %Y"), birthplace, countryID FROM persons WHERE personID = ?';
if ($stmt = $mysqli->prepare($check_sql)) {
$stmt->bind_param('i', $pid);
$stmt->bind_result($personDB, $name, $birthdate, $birthplace, $countryID);
$stmt->execute();
$stmt->fetch();
}
答案 1 :(得分:1)
另一种选择是返回原始日期/时间,然后在PHP中格式化它。
在格式化日期之前,您可以使用PHP中的setlocale()函数来获取西班牙语输出。
这有一个额外的好处,就是不在mysql中运行一个函数,这可能会更慢。
答案 2 :(得分:-2)
SET lc_time_names = 'es_PE';
SELECT *, DATE_FORMAT(fecha,'%d de') AS dia,
DATE_FORMAT(fecha,'%M %Y') AS mes
FROM t_eventos4