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

Angular2中如何将输入字符串转换为时间戳?

当然有简便方法啦!针对不同的编程语言,都有成熟的工具来完成这个转换,我给你整理了几个最常用场景的实现方式:

Python 实现方案

Python的datetime模块就能轻松搞定这个需求。首先你需要把输入的字符串解析成datetime对象,再转换为秒级时间戳。注意你的字符串格式是月/日/年 时:分:秒,所以要指定对应的格式符%m/%d/%Y %H:%M:%S。

from datetime import datetime

date_str = "5/4/2018 11:49:01"
# 按照指定格式解析字符串为datetime对象
dt_obj = datetime.strptime(date_str, "%m/%d/%Y %H:%M:%S")
# 转换为秒级时间戳(注意:默认是本地时区,若需UTC时间戳需额外设置时区)
timestamp = int(dt_obj.timestamp())
print(timestamp)

如果需要UTC时区的时间戳,可以这样调整:

from datetime import datetime, timezone

dt_obj = datetime.strptime(date_str, "%m/%d/%Y %H:%M:%S").replace(tzinfo=timezone.utc)
timestamp = int(dt_obj.timestamp())
JavaScript 实现方案

不管是浏览器环境还是Node.js,都可以用原生Date对象处理。需要注意的是,Date.parse()返回的是毫秒级时间戳,要除以1000并取整才能得到你要的秒级格式。

const dateStr = "5/4/2018 11:49:01";
// 解析字符串得到毫秒级时间戳
const timestampMs = Date.parse(dateStr);
// 转换为秒级时间戳
const timestamp = Math.floor(timestampMs / 1000);
console.log(timestamp);

如果担心不同环境下的解析差异,也可以手动拆分字符串来构建Date对象,避免格式歧义:

const [datePart, timePart] = "5/4/2018 11:49:01".split(" ");
const [month, day, year] = datePart.split("/").map(Number);
const [hour, minute, second] = timePart.split(":").map(Number);
// 注意:JavaScript的月份是0开始的,所以要减1
const date = new Date(year, month - 1, day, hour, minute, second);
const timestamp = Math.floor(date.getTime() / 1000);
PHP 实现方案

PHP的strtotime()函数几乎可以直接识别这种日期格式,返回的就是秒级时间戳,非常省心:

$dateStr = "5/4/2018 11:49:01";
$timestamp = strtotime($dateStr);
echo $timestamp;

如果需要更严格的格式控制,也可以用DateTime类的createFromFormat方法:

$dateObj = DateTime::createFromFormat('m/d/Y H:i:s', "5/4/2018 11:49:01");
$timestamp = $dateObj->getTimestamp();
echo $timestamp;

关键注意点

  • 时区影响:不同语言的默认时区可能不同,如果你的业务需要统一使用UTC时间戳,一定要手动设置时区,否则转换结果会出现偏差。
  • 格式匹配:解析时的格式符必须和输入字符串的格式完全对应,比如你的例子是月/日/年,就不能误用日/月/年的格式规则,否则会解析出错误的时间。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:11:49