<?php
// set default timezone
date_default_timezone_set('America/Los_Angeles');
//define date and time
$date = date("d M Y H:i:s");
// output
echo strtotime($date);
?>
$date="30/07/2010 13:24"; //Date example
list($day, $month, $year, $hour, $minute) = split('[/ :]', $date);
//The variables should be arranged according to your date format and so the separators
$timestamp = mktime($hour, $minute, 0, $month, $day, $year);
echo date("r", $timestamp);
function dateToTimestamp($date, $format, $timezone='Europe/Belgrade')
{
//returns an array containing day start and day end timestamps
$old_timezone=date_timezone_get();
date_default_timezone_set($timezone);
$date=strptime($date,$format);
$day_start=mktime(0,0,0,++$date['tm_mon'],++$date['tm_mday'],($date['tm_year']+1900));
$day_end=$day_start+(60*60*24);
date_default_timezone_set($old_timezone);
return array('day_start'=>$day_start, 'day_end'=>$day_end);
}
$timestamps=dateToTimestamp('15.02.1991.', '%d.%m.%Y.', 'Europe/London');
$day_start=$timestamps['day_start'];
19 回答
PHP的strtotime()给出了
哪个适用于Supported Date and Time Formats Docs .
还有strptime(),它只需要一种格式:
随着DateTime API:
与过程API相同:
如果由于您使用unsupported format而导致上述操作失败,则可以使用
请注意,如果未设置
!
,则时间部分将设置为当前时间,这与前四个时间不同,后者将在省略时间时使用午夜 .另一种方法是使用IntlDateFormatter API:
除非您使用本地化日期字符串,否则更容易的选择可能是DateTime .
小心
strtotime()
这样的函数试试"guess"你的意思(当然不是猜测,rules are here) .确实
22-09-2008
将被解析为2008年9月22日,因为这是唯一合理的事情 .如何解析
08-09-2008
?可能是2008年8月9日 .2008-09-50
怎么样?某些版本的PHP将其解析为2008年10月20日 .因此,如果您确定您的输入是
DD-MM-YYYY
格式,则最好使用@Armin Ronacher提供的解决方案 .如果你有PHP 5.3或以上,
这个方法适用于 both Windows和Unix and 是 time-zone 知道,这可能是你想要的,如果你认真使用日期 .
如果您不关心时区,或者想要使用服务器使用的时区:
1222093324 (这将根据您的服务器时区而有所不同......)
如果要指定在哪个时区,这里是EST . (与纽约相同 . )
1222093305
或者如果您想使用UTC . (与“GMT”相同 . )
1222093289
使用mktime:
使用strtotime()函数可以轻松地将日期转换为时间戳
更多信息:http://php.net/manual/en/function.strtotime.php
在线转换工具:http://freeonlinetools24.com/
这是一个使用
split
和mtime
函数的非常简单有效的解决方案:它对我来说就像一个魅力 .
鉴于函数
strptime()
不适用于Windows且strtotime()
可以返回意外结果,我建议使用date_parse_from_format()
:如果您想确定日期是否被解析为您期望的内容,您可以使用
DateTime::createFromFormat()
:在这种情况下很明显,但是
03-04-2008
可能是4月3日或3月4日,取决于你来自哪里:)如果您知道格式使用
strptime
,因为strtotime
会对格式进行猜测,这可能并不总是正确的 . 由于strptime
未在Windows中实现,因此存在自定义功能请记住,返回值
tm_year
是从1900年开始的!和tm_month
是0-11例:
http://php.net/manual/en/function.date.php
如果需要,请将其放在MySQL输入类型时间戳中 . 以上工作非常好(仅限PHP 5或更高版本):
我是这样做的:
这样,您可以让函数知道您正在使用的日期格式,甚至可以指定时区 .
如果你把它设置为在数据库中保存日期,请注意时间/区域,因为当我使用
strtotime
比较转换为timestamp
的mysql的日期时出现问题 . 在将日期转换为时间戳之前必须使用完全相同的时间/区域,否则strtotime()将使用默认服务器时区 .请看这个例子:https://3v4l.org/BRlmV
使用PHP函数date()
date — Format a local time/date
如果您要将UTC日期时间(
2016-02-14T12:24:48.321Z
)转换为时间戳,请执行以下操作:'s how you' d: