You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js+MySQL中如何将查询返回的日期格式化为Aug 24 2022?

问题描述

使用Node.js + MySQL开发JSON API时,查询语句使用SELECT p.*无法单独在SQL中格式化MySQL的date类型字段,直接提取date得到的是"2022-08-24T05:00:00.000Z"格式的Date对象。尝试转换为字符串后得到"Wed Aug 24 2022 00:00:00 GMT-0500 (Central Daylight Time)",需要提取出"Aug 24 2022"部分。

解决方案

方法1:使用Date内置本地化方法

直接利用JavaScript Date对象的toLocaleDateString方法,指定格式参数生成目标字符串:

var mylist = results.map(row => ({
    'date': row.date.toLocaleDateString('en-US', {
        month: 'short',
        day: 'numeric',
        year: 'numeric'
    })
}));

该方法会直接返回"Aug 24 2022"格式的结果,无需手动拼接,兼容性好。

方法2:手动提取日期各部分拼接

定义月份缩写数组,通过Date对象方法获取对应部分后拼接:

const monthAbbrs = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];

var mylist = results.map(row => ({
    'date': `${monthAbbrs[row.date.getMonth()]} ${row.date.getDate()} ${row.date.getFullYear()}`
}));

注意:getMonth()返回0-11的数字,对应数组的索引位置。

方法3:对toString结果分割拼接

如果坚持用字符串分割方式,可通过slice截取目标部分后拼接:

var mylist = results.map(row => ({
    'date': row.date.toString().split(' ').slice(1, 4).join(' ')
}));

split(' ')按空格拆分字符串为数组,slice(1,4)提取索引1、2、3的元素(月份缩写、日期、年份),最后用join(' ')拼接成目标格式。

内容的提问来源于stack exchange,提问作者LautaroColella

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 11:20:29