What the best way to deal with date and time??

I design a small article program and I need to store date and time for article in DB.
I need my script be accurate in calculate date and time and able to change time zone correctly.
My question is:
- I know there is a lot of way to do this:
There functions in PHP to deal with date and time and there is functions in MySql to deal with date and time.
Also we can use PHP timestamp or MySql timestamp.

So what is the best way to do this?

What is the best timestamp?

In MySql im Column Types there is: numeric types and date and time types, and a lot of program use numeric types, why?

Is there function or class to perform change between time zone.

That's and other make big confuse to me with date and time

That's all.