Yii2如何将字符串日期转换为int(11)类型时间戳?
Yii2 日期字符串转时间戳的实现方法
Yii2 确实支持将日期字符串转换为int类型的时间戳,同样可以借助内置的Formatter组件来完成,核心思路是先把日期字符串解析为DateTime对象,再通过对象方法获取时间戳。
基础用法示例
针对你提到的2022-12-21这种标准日期格式,直接用parseDate方法即可:
// 将日期字符串解析为DateTime对象 $dateObject = Yii::$app->formatter->parseDate('2022-12-21'); // 转换为int类型的时间戳 $timestamp = $dateObject->getTimestamp();
getTimestamp()返回的就是符合要求的int类型时间戳,长度会根据时间自动适配(目前主流时间戳是10位,未来会逐步到11位,方法会自动返回正确的数值类型)。
非标准日期格式的处理
如果你的日期字符串是类似December 21, 2022这种格式,需要在parseDate方法里指定对应格式:
$dateObject = Yii::$app->formatter->parseDate('December 21, 2022', 'MMMM d, yyyy'); $timestamp = $dateObject->getTimestamp();
这里的格式字符串遵循ICU的日期格式规则,和asDate方法里的格式参数是对应的。
补充说明
你也可以使用parseDateTime方法,它和parseDate的区别是会保留时间部分(如果日期字符串里包含的话),最终转换时间戳的逻辑是一样的:
$dateTimeObject = Yii::$app->formatter->parseDateTime('2022-12-21 14:21:25'); $timestamp = $dateTimeObject->getTimestamp();
内容的提问来源于stack exchange,提问作者evgeni2306
相关产品推荐
相关产品推荐

