开发者

Convert uncommon date format to timestamp in most efficient manner possible?

I have a date in this format: 20101101120000

I need to convert it to a timestamp with PHP.

I've been searching the PHP docs online, but can't find anything that can convert directly. Does one exist? If not, what's the most efficient way to do the conversion? Thank you for your h开发者_运维技巧elp.


You can do this with DateTime::createFromFormat:

$d = DateTime::createFromFormat('YmdGis', '20101101120000');

$d is now a DateTime instance. You can either convert it to a timestamp with $d->getTimestamp() or use the DateTime methods on it.

Note that this requires PHP 5.3.


strtotime('20101101120000')

....


You need the function strptime.

The formats are described at strftime.


I only add to this resolved question because this may be helpful for users who stumble upon here (like I did) and are looking to get an actual datetime timestamp.

My assumption for most folks when they mention timestamp is that they're looking for a normal "YYYY-MM-DD HH:MM:SS" timestamp not a unix timestamp which you get when you use the getTimestamp() method (see accepted answer if you are indeed looking for the UNIX Timestamp).

So I will further elaborate on lonesomeday's answer (which is fully correct) for those looking to actually get a valid formated date that they can display to users or insert into their database:

$d = DateTime::createFromFormat('YmdGis', '20101101120000');

$formatedDate = $d->format('Y-m-d H:i:s'); // will return 2010-11-01 12:00:00
$formatedDate = $d->format('m-d-Y h:i A'); // will return 11-01-2010 12:00 PM 
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜