函数文档

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().

Return

int|false A UNIX timestamp for the media’s creation date if available or a boolean FALSE if a timestamp could not be determined.

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.