javascript - Date function in PHP gives always date one day behind - Stack Overflow

My situation is that get always the dates one day behind.For example, I have this value -243219600 whi

My situation is that get always the dates one day behind. For example, I have this value -243219600 which is relative to date 18/04/1962

After a

date('d/m/Y', -243219600);

Output is :

17/04/1962

-243219600 seconds from January 1 1970 00:00:00 UTC in javascript is here you get correct Date.

My situation is that get always the dates one day behind. For example, I have this value -243219600 which is relative to date 18/04/1962

After a

date('d/m/Y', -243219600);

Output is :

17/04/1962

-243219600 seconds from January 1 1970 00:00:00 UTC in javascript is here you get correct Date.

Share Improve this question asked Sep 10, 2015 at 11:17 AlaeddineAlaeddine 1,6972 gold badges26 silver badges48 bronze badges 3
  • I get proper 18/04/1962 as output when I try your code. – jitendrapurohit Commented Sep 10, 2015 at 11:26
  • I get the 17th - I'm using UTC. Specifically with $dt = new DateTime(); $dt->setTimestamp(-243219600); echo $dt->format('r'); I get Tue, 17 Apr 1962 23:00:00. So, pretty close to the 18th, but not quite. – Darragh Enright Commented Sep 10, 2015 at 11:37
  • @JitendraPurohit can you tell me what Time zone you are using? – Alaeddine Commented Sep 10, 2015 at 12:55
Add a ment  | 

2 Answers 2

Reset to default 5

The output of date() depends on the configured time zone. If you add the time and timezone, you can see it. In my case it is CET:

echo date('d/m/Y H:m:i T', -243219600);
//prints: 18/04/1962 00:04:00 CET

Solution with date()

If you want date() to use UTC, use date_default_timezone_set:

date_default_timezone_set('UTC');
echo date('d/m/Y H:m:i T', -243219600);"

Output

 17/04/1962 23:04:00 UTC

(you see, since it is one hour before midnight in UTC, the date depends on the timezone)

Solution with DateTime:

The DateTime class uses always UTC if it is constructed by a Unix timestamp:

From the documentation:

Note:

The $timezone parameter and the current timezone are ignored when the $time parameter either is a UNIX timestamp (e.g. @946684800) or specifies a timezone (e.g. 2010-01-28T15:00:00+02:00).

So you can use the following code as well:

echo (new DateTime('@-243219600'))->format('d/m/Y');

Check the timezone of your PHP, set it so it's the same as your puter (since your using javascript).

发布者:admin,转转请注明出处:http://www.yc00.com/questions/1745378618a4625118.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信