js utc时间转正常格式

本文介绍了一个将UTC时间字符串转换为特定日期格式的JavaScript函数。该函数通过解析UTC时间字符串,并利用定义好的月份和星期数组来转换日期格式。
function   utcToDate(utcCurrTime)
{

//Fri Oct 31 18:00:00 UTC+0800 2008
utcCurrTime = utcCurrTime + "";
var date="";
var month=new Array();
month["Jan"]=1;

month["Feb"]=2;

month["Mar"]=3;

month["Apr"]=4;

month["May"]=5;

month["Jun"]=6;
month["Jul"]=7;

month["Aug"]=8;

month["Sep"]=9;

month["Oct"]=10;

month["Nov"]=11;

month["Dec"]=12;


var week=new Array();
week["Mon"]="一";

week["Tue"]="二";

week["Wed"]="三";

week["Thu"]="四";

week["Fri"]="五";

week["Sat"]="六";

week["Sun"]="日";


str = utcCurrTime.split(" ");
date = str[5]+"-";
date = date + month[str[1]] + "-" + str[2] + "-" + str[3];
//date=date+" 周"+week[str[0]];
return date;
}

### 使用 Day.js 处理 UTC 时间 Day.js 是一个轻量级的 JavaScript 库,用于处理日期时间。默认情况下,它会将时间解析为本地时间。如果需要处理 UTC 时间,则需通过扩展插件 `utc` 来支持。 #### 安装依赖 在项目中使用 Day.js 和其 UTC 插件前,需要先安装相关依赖: ```bash npm install dayjs ``` #### 加载 UTC 插件并初始化 为了启用 UTC 支持,必须加载 `utc` 插件并通过 `extend` 方法注册到 Day.js 实例中: ```javascript // 引入必要的模块 const dayjs = require('dayjs'); const utc = require('dayjs/plugin/utc'); // 注册 UTC 插件 dayjs.extend(utc); ``` #### 解析和格式UTC 时间 以下是具体的解析和格式UTC 时间的示例代码: ##### 示例 1:从字符串创建 UTC 时间对象并格式化 假设有一个标准的 ISO 8601 格式UTC 字符串 `'2019-03-06T00:00:00Z'`,可以将其解析为 UTC 时间并对齐特定格式输出: ```javascript function transformTime(timestamp) { return dayjs.utc(timestamp).format('YYYY/MM/DD HH:mm:ss'); } console.log(transformTime('2019-03-06T00:00:00Z')); // 输出: 2019/03/06 00:00:00 ``` 此操作利用了 `dayjs.utc()` 函数来显式指定输入时间UTC 模式[^1]。 ##### 示例 2:将本地时间换为 UTC 时间 有时可能需要将当前系统的本地时间换为对应的 UTC 表达形式: ```javascript function localToUtc() { return dayjs().utc().format('YYYY-MM-DDTHH:mm:ss[Z]'); } console.log(localToUtc()); // 当前时刻的 UTC 时间表示 ``` 这里调用了 `.utc()` 方法将本地时间实例切换至 UTC 上下文中再执行后续操作。 ##### 示例 3:自定义工具类封装 对于更复杂的场景或者频繁使用的功能点,建议构建统一的辅助函数集合以便重用逻辑: ```typescript import dayjs from "dayjs"; import utc from "dayjs/plugin/utc"; dayjs.extend(utc); export class DateFormatter { static formatUTC(input, customFormat = "YYYY-MM-DD HH:mm:ss") { return dayjs.utc(input).format(customFormat); } static formatLocal(input, customFormat = "YYYY-MM-DD HH:mm:ss") { return dayjs(input).format(customFormat); } } ``` 这样可以在整个应用范围内一致地管理不同类型的日期变换需求[^2]。 --- ### 注意事项 1. **确保正确引入插件** 如果忘记调用 `dayjs.extend(utc)` 则无法正常使用 UTC 功能。 2. **区分 UTC 和本地模式** 记住 `dayjs()` 返回的是基于客户端设置的本地时间戳;而 `dayjs.utc()` 或者已存在的实例上调用 `.utc()` 可获得全球协调世界时版本的数据结构[^1]. 3. **兼容性考虑** 特定浏览器环境下可能存在细微差异,请测试目标环境下的行为表现是否符合预期。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值