news 2026/9/22 6:40:54

在云函数中如何实现自定义国际时区UTC - JavaScript

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
在云函数中如何实现自定义国际时区UTC - JavaScript

在云函数中使用配置时区的方式通过代码控制
下面写两个版本:
版本一:使用服务器本地时间(服务器时区是东八区)
版本二:使用UTC时间并转换为东八区时间
获取当前日期时间格式化为 YYYY-MM-DD HH:MM:SS 格式的函数

1. 基本函数(本地时间):

functiongetCurrentDateTime(){constnow=newDate();// 获取各个时间部分constyear=now.getFullYear();constmonth=String(now.getMonth()+1).padStart(2,'0');// 月份从0开始constday=String(now.getDate()).padStart(2,'0');consthours=String(now.getHours()).padStart(2,'0');constminutes=String(now.getMinutes()).padStart(2,'0');constseconds=String(now.getSeconds()).padStart(2,'0');return`${year}-${month}-${day}${hours}:${minutes}:${seconds}`;}// 调用示例console.log(getCurrentDateTime());// 输出: 2025-12-14 15:30:45

2. 完整版本(支持自定义时区):

timezoneOffset - 时区偏移(小时),默认为系统时区,适合获取国际时区

/** * 获取当前日期时间 * @param {number} timezoneOffset - 时区偏移(小时),默认为系统时区 * @returns {string} 格式化的日期时间字符串 YYYY-MM-DD HH:MM:SS */functiongetCurrentDateTime(timezoneOffset=null){constnow=newDate();letdateObj;if(timezoneOffset!==null){// 计算指定时区的时间constutc=now.getTime()+(now.getTimezoneOffset()*60000);dateObj=newDate(utc+(timezoneOffset*3600000));}else{dateObj=now;}// 格式化各部分constyear=dateObj.getFullYear();constmonth=String(dateObj.getMonth()+1).padStart(2,'0');constday=String(dateObj.getDate()).padStart(2,'0');consthours=String(dateObj.getHours()).padStart(2,'0');constminutes=String(dateObj.getMinutes()).padStart(2,'0');constseconds=String(dateObj.getSeconds()).padStart(2,'0');return`${year}-${month}-${day}${hours}:${minutes}:${seconds}`;}// 使用示例console.log(getCurrentDateTime());// 本地时间console.log(getCurrentDateTime(8));// 东八区(北京时间)console.log(getCurrentDateTime(0));// UTC时间

3. 更高级的版本(处理时区问题,推荐用于云函数):

由于云函数通常运行在 UTC 时区,建议使用 UTC 时间并转换为北京时间:

/** * 获取北京时间(东八区) * 云函数通常运行在UTC时区,所以需要转换 */functiongetBeijingTime(){constnow=newDate();// 转换为北京时间(UTC+8)constbeijingOffset=8*60*60*1000;// 8小时的毫秒数constbeijingTime=newDate(now.getTime()+beijingOffset);// 使用UTC方法获取,避免时区干扰constyear=beijingTime.getUTCFullYear();constmonth=String(beijingTime.getUTCMonth()+1).padStart(2,'0');constday=String(beijingTime.getUTCDate()).padStart(2,'0');consthours=String(beijingTime.getUTCHours()).padStart(2,'0');constminutes=String(beijingTime.getUTCMinutes()).padStart(2,'0');constseconds=String(beijingTime.getUTCSeconds()).padStart(2,'0');return`${year}-${month}-${day}${hours}:${minutes}:${seconds}`;}// 使用consttoday=getBeijingTime();constuserContent=`今天日期:${today}`;

4. 简化版本:

// 一行代码获取格式化时间constgetCurrentTime=()=>newDate().toISOString().replace('T',' ').substring(0,19);// 或者constgetCurrentDateTime=()=>newDate().toLocaleString('sv-SE').replace(' ',' ');// 调用console.log(getCurrentDateTime());// 输出: 2025-12-14 15:30:45

5.懒人版直接下载文章附件运行

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/21 14:29:54

商家福音!用PHP对接快递鸟接口,一键搞定单号所属快递识别

日常处理快递单时,C端用户查物流直接搜单号就行,但商家场景完全不同——每天面对成百上千个混杂着顺丰、中通、韵达等不同快递的单号,先搞清楚每个单号属于哪家快递,才能顺利发起物流追踪,这个环节要是靠人工比对&…

作者头像 李华
网站建设 2026/9/21 21:59:20

YT29B凿岩机吕梁精准检测稳定性能解析

近年来,国内凿岩设备市场呈现出明显的区域分化特征。以吕梁为代表的山西资源型城市,因矿山开采、隧道掘进及基础设施建设需求持续释放,对风动凿岩机、气腿式凿岩机等主力机型的采购活跃度居高不下。据2025年第三季度行业监测数据显示&#xf…

作者头像 李华
网站建设 2026/9/21 17:00:01

26、网络连接与安全全解析

网络连接与安全全解析 在当今数字化时代,网络连接和网络安全是我们日常使用计算机时不可忽视的重要方面。下面我们将详细探讨网络连接相关文件、网络安全的多个要点,包括密码安全、远程登录以及防火墙配置等内容。 网络连接相关文件问答 首先,我们来看一些关于连接互联网…

作者头像 李华
网站建设 2026/9/21 20:43:47

2025.12.16 HSRP双机热备

1)拓扑图2)实验步骤2.1 PC机配置PC0 PC1PC22.2 路由器配置2.3 交换机配置SW3 SW1SW22.4 测试PC0 ping PC1PC0 ping PC2

作者头像 李华
网站建设 2026/9/21 18:08:10

万全智能RFID模块设备他们产品档次怎么样

万全智能的RFID模块设备在行业内属于中高端档次,其产品特点主要体现在以下方面: 技术性能 读写能力 支持多协议兼容(如EPC Class1 Gen2、ISO 18000-6C等),读写距离可达10米以上(超高频型号)&…

作者头像 李华
网站建设 2026/9/21 20:50:11

RuoYi v1.2.0 全端开发神器:让多端适配从未如此简单!

一、 引言:为什么选择 RuoYi APP 框架?在移动应用开发领域,跨平台适配一直是开发者的噩梦。传统方案需为 iOS、Android、小程序等多端单独开发,成本高、效率低。而 RuoYi v1.2.0 基于 UniAppUniUI 的轻量级框架,彻底打…

作者头像 李华