如何从例如22-09-2008中获取时间戳?
当前回答
我使用的格式是: $presentDateTime = strtotime(date('Y-m-d H:i:s'));
其他回答
请注意时间/区域,如果你设置它保存在数据库中的日期,因为我得到了一个问题,当我从mysql的日期转换为时间戳使用strtotime比较。在将日期转换为时间戳之前,必须使用完全相同的时间/区域,否则,strtotime()将使用默认的服务器时区。
请看这个例子:https://3v4l.org/BRlmV
function getthistime($type, $modify = null) {
$now = new DateTime(null, new DateTimeZone('Asia/Baghdad'));
if($modify) {
$now->modify($modify);
}
if(!isset($type) || $type == 'datetime') {
return $now->format('Y-m-d H:i:s');
}
if($type == 'time') {
return $now->format('H:i:s');
}
if($type == 'timestamp') {
return $now->getTimestamp();
}
}
function timestampfromdate($date) {
return DateTime::createFromFormat('Y-m-d H:i:s', $date, new DateTimeZone('Asia/Baghdad'))->getTimestamp();
}
echo getthistime('timestamp')."--".
timestampfromdate(getthistime('datetime'))."--".
strtotime(getthistime('datetime'));
//getthistime('timestamp') == timestampfromdate(getthistime('datetime')) (true)
//getthistime('timestamp') == strtotime(getthistime('datetime')) (false)
使用mktime:
list($day, $month, $year) = explode('-', '22-09-2008');
echo mktime(0, 0, 0, $month, $day, $year);
如果已经有了该格式的日期,则只需要在PHP中调用“strtotime”函数。
$date = '22-09-2008';
$timestamp = strtotime($date);
echo $timestamp; // 1222041600
或在单行中:
echo strtotime('22-09-2008');
简短而简单。
小心使用像strtotime()这样试图“猜测”您的意思的函数(它当然不会猜测,规则在这里)。
事实上,22-09-2008将被解析为2008年9月22日,因为这是唯一合理的事情。
08-09-2008将如何解析?可能是2008年8月9日。
那2008-09-50呢?某些版本的PHP将此解析为20 October 2008。
所以,如果你确定输入的是DD-MM-YYYY格式,最好使用@Armin Ronacher提供的解决方案。
如果你想确定一个日期是否被解析成你想要的,你可以使用DateTime::createFromFormat():
$d = DateTime::createFromFormat('d-m-Y', '22-09-2008');
if ($d === false) {
die("Woah, that date doesn't look right!");
}
echo $d->format('Y-m-d'), PHP_EOL;
// prints 2008-09-22
在这种情况下很明显,但是例如03-04-2008可能是4月3日或3月4日,这取决于你来自哪里:)
推荐文章
- 如何从一个查询插入多行使用雄辩/流利
- 如何使用yyyyMMddHHmmss格式格式化当前时间?
- SQL Developer只返回日期,而不是时间。我怎么解决这个问题?
- 在mongodb中存储日期/时间的最佳方法
- 在PHP单元测试执行期间,如何在CLI中输出?
- 在PHP中使用heredoc的优势是什么?
- PHP中的echo, print和print_r有什么区别?
- 前一个月的Python日期
- 如何将XML转换成PHP数组?
- 如何将对象转换为数组?
- 从IP地址获取位置
- 如何在python中验证日期字符串格式?
- 获取数组值的键名
- HTTPS和SSL3_GET_SERVER_CERTIFICATE:证书验证失败,CA is OK
- PHP -获取bool值,当为false时返回false