PHP/MySQLi: SET lc_time_names and DATE_FORMAT() into a mysqli query?

前端 未结 3 1661
一生所求
一生所求 2021-01-16 07:01

I use the next code to retrieve data from a table in the database:

$check_sql = \'SELECT personID, name, DATE_FORMAT(persons.birthdate, \"%d de %M, %Y\"), bi         


        
相关标签:
3条回答
  • 2021-01-16 07:08
    $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();
            }
    
    0 讨论(0)
  • 2021-01-16 07:12

    Another option is to return the raw date/time and then format it in PHP.

    Before you format the date, you can use the setlocale() function in PHP to get Spanish output.

    This has the added benefit of not running a function in mysql, which can be slower.

    0 讨论(0)
  • 2021-01-16 07:18
    SET lc_time_names = 'es_PE';
    SELECT *, DATE_FORMAT(fecha,'%d de') AS dia,
    DATE_FORMAT(fecha,'%M  %Y') AS mes
     FROM t_eventos4
    
    0 讨论(0)
提交回复
热议问题