0

我正在更改日期格式,但显示格式错误

echo $punch_in_time;
// Prints 2013-09-09 11:40:00

echo $new_date = gmdate('D, M-d-Y h:i a',strtotime($punch_in_time)); 
// Prints Mon, Sep-09-2013 09:40 am (Notice the wrong time)

我也尝试在显示时间之前设置时区,但没有效果。我不知道为什么会这样,它必须显示我的时间Mon, Sep-09-2013 11:40 am而不是Mon, Sep-09-2013 09:40 am.

4

2 回答 2

2

在使用功能之前,请务必阅读说明/手册。

它在 gmdate() 的描述中显示“格式化 GMT/UTC 日期/时间”,这意味着它假设您输入的日期在本地时区(从时差 GMT+2 判断?)gmdate 然后将其转换为 GMT+0 时区的日期格式。

要确保时区* 在输入和输出之间保持一致,请改用 date()。

*这会将日期时间转换为您的本地时区,这可能不是您需要的。

echo $new_date = date('D, M-d-Y h:i a',strtotime($punch_in_time)); 
于 2013-09-09T06:40:18.713 回答
1

gmdate()date()函数相同,只是返回的时间是格林威治标准时间

改用这个

echo $new_date = date('D, M-d-Y h:i a',strtotime($punch_in_time));
于 2013-09-09T06:30:54.783 回答