wp_get_media_creation_timestamp()
云策文档标注
概述
wp_get_media_creation_timestamp() 函数用于从媒体文件的元数据中解析创建日期时间戳。由于 getID3 库没有标准方法获取创建日期,该函数根据 MIME 类型处理不同格式的元数据。
关键要点
- 参数:$metadata(数组,必需),来自 getID3::analyze() 返回的元数据。
- 返回值:成功时返回 UNIX 时间戳(整数),失败时返回 FALSE。
- 支持的文件格式包括 ASF、Matroska/WebM、QuickTime/MP4,每种格式的元数据结构不同。
代码示例
function wp_get_media_creation_timestamp( $metadata ) {
$creation_date = false;
if ( empty( $metadata['fileformat'] ) ) {
return $creation_date;
}
switch ( $metadata['fileformat'] ) {
case 'asf':
if ( isset( $metadata['asf']['file_properties_object']['creation_date_unix'] ) ) {
$creation_date = (int) $metadata['asf']['file_properties_object']['creation_date_unix'];
}
break;
case 'matroska':
case 'webm':
if ( isset( $metadata['matroska']['comments']['creation_time'][0] ) ) {
$creation_date = strtotime( $metadata['matroska']['comments']['creation_time'][0] );
} elseif ( isset( $metadata['matroska']['info'][0]['DateUTC_unix'] ) ) {
$creation_date = (int) $metadata['matroska']['info'][0]['DateUTC_unix'];
}
break;
case 'quicktime':
case 'mp4':
if ( isset( $metadata['quicktime']['moov']['subatoms'][0]['creation_time_unix'] ) ) {
$creation_date = (int) $metadata['quicktime']['moov']['subatoms'][0]['creation_time_unix'];
}
break;
}
return $creation_date;
}注意事项
- 该函数自 WordPress 4.9.0 版本引入。
- 相关函数包括 wp_read_video_metadata() 和 wp_read_audio_metadata(),用于从视频和音频文件获取元数据。
原文内容
Parses creation date from media metadata.
Description
The getID3 library doesn’t have a standard method for getting creation dates, so the location of this data can vary based on the MIME type.
Parameters
$metadataarrayrequired-
The metadata returned by getID3::analyze().
Source
function wp_get_media_creation_timestamp( $metadata ) {
$creation_date = false;
if ( empty( $metadata['fileformat'] ) ) {
return $creation_date;
}
switch ( $metadata['fileformat'] ) {
case 'asf':
if ( isset( $metadata['asf']['file_properties_object']['creation_date_unix'] ) ) {
$creation_date = (int) $metadata['asf']['file_properties_object']['creation_date_unix'];
}
break;
case 'matroska':
case 'webm':
if ( isset( $metadata['matroska']['comments']['creation_time'][0] ) ) {
$creation_date = strtotime( $metadata['matroska']['comments']['creation_time'][0] );
} elseif ( isset( $metadata['matroska']['info'][0]['DateUTC_unix'] ) ) {
$creation_date = (int) $metadata['matroska']['info'][0]['DateUTC_unix'];
}
break;
case 'quicktime':
case 'mp4':
if ( isset( $metadata['quicktime']['moov']['subatoms'][0]['creation_time_unix'] ) ) {
$creation_date = (int) $metadata['quicktime']['moov']['subatoms'][0]['creation_time_unix'];
}
break;
}
return $creation_date;
}
Changelog
| Version | Description |
|---|---|
| 4.9.0 | Introduced. |