我正在寻找一个与date()相反的函数。含义:
$timestamp = inverse_date($format_string, $date_string);
$d = date($format_string, $timestamp);
if ($d === $date_string) {
echo 'This is what I want';
}
到目前为止我遇到的问题:
strtotime - 猜测格式,因此它可能不适合所有格式
strptime - 使用与日期不同的strftime格式
SOLUTION:
function inverse_date($format_string, $date_string) {
$dateTime = date_create_from_format($format_string, $date_string);
$value_ts = date_format($dateTime, 'U');
return $value_ts;
}
感谢Till Helge Helwig的链接。
答案 0 :(得分:0)
function inverse_date($format_string, $date_string) {
$dateTime = date_create_from_format($format_string, $date_string);
$value_ts = date_format($dateTime, 'U');
return $value_ts;
}
答案 1 :(得分:-1)
PHP5.3以下,最好的选择是strtotime()
。它很好地猜测了时间
使用mktime()
Doc here
如果您有日期并知道它的格式,只需使用explode()
,您就必须预先设置您期望的格式:
示例:
define('DMY4', 'dd-mm-yyyy');
// Other similar defines with all formats expected
function inverse_date($format_string, $date_string) {
$d = 0;
$m = 0;
$y = 0;
$h = 0;
$i = 0;
$s = 0;
switch ($format_string) {
case DMY4:
list($d, $m, $y) = explode('-', $date_string);
break;
// etc...
}
$time = mktime($h, $m, $s, $m, $d, $y);
}