使用API开发交易展示页面,如何将时间戳格式化为MM-DD-YYYY?
解决毫秒时间戳转MM-DD-YYYY格式日期的问题
首先注意到你给出的时间戳1520348611194是毫秒级的(13位数字),不同编程语言的处理逻辑略有差异,下面给你几种常见开发场景的解决方案:
JavaScript(前端/Node.js)方案
如果是在页面前端或者Node.js环境中处理,你可以这样写:
const timestamp = 1520348611194; const date = new Date(timestamp); // 处理月份:JS的月份是0-11,所以要+1,再补零确保两位 const month = String(date.getMonth() + 1).padStart(2, '0'); // 处理日期:补零确保两位 const day = String(date.getDate()).padStart(2, '0'); // 提取四位年份 const year = date.getFullYear(); // 拼接成目标格式 const formattedDate = `${month}-${day}-${year}`; console.log(formattedDate); // 输出:03-06-2018
小提示:padStart(2, '0')是为了避免出现类似3-6-2018这种不规范的格式,确保月份和日期始终是两位数字。
PHP 后端方案
如果是在PHP环境中处理,需要先把毫秒时间戳转成秒级(PHP的时间函数默认用秒级时间戳):
$timestamp = 1520348611194; // 除以1000转成秒级时间戳,再用date函数格式化 $formattedDate = date("m-d-Y", $timestamp / 1000); echo $formattedDate; // 输出:03-06-2018
这里date()函数的参数"m-d-Y"正好对应MM-DD-YYYY的格式要求,非常省心。
Python 方案
如果用Python处理,逻辑类似,先转成datetime对象再格式化:
import datetime timestamp = 1520348611194 # 转成秒级时间戳后生成datetime对象 date_obj = datetime.datetime.fromtimestamp(timestamp / 1000) # 按照指定格式输出 formatted_date = date_obj.strftime("%m-%d-%Y") print(formatted_date) # 输出:03-06-2018
strftime("%m-%d-%Y")里的%m对应两位月份,%d对应两位日期,%Y对应四位年份,完美匹配你的需求。
内容的提问来源于stack exchange,提问作者Shaun Nicholson




