从PHP的日期时间获取年/月/日?

问题描述:

我用date('w', timestamp)date('w', timestamp)知道一天,date('n', timestamp)几个月,等从PHP的日期时间获取年/月/日?

现在我使用的日期时间,我想知道什么是等同的功能得到了一天,一个月,等离日期时间。

PS:我知道我可以在SQL查询中使用UNIX_TIMESTAMP(),但我更喜欢避免在我的代码中使用时间戳。

+1

你说你正在使用PHP的DateTime类? datetime结果上的strtotime()应该给你一个使用date()的时间戳。 –

+0

这些天StackOverflow上最重要的问题上upvotes的数量是惊人的。 – j4k3

使用DateTimeDateTime::format()

$datetime = new DateTime($dateTimeString); 
echo $datetime->format('w'); 
+5

只是PHP中的另一个错误设计!为什么没有函数getDay(),getMonth(),getYear()等等。?或者返回像getdate()这样的数组的函数呢?我不得不使用这些不甚直观的神秘角色,这真是一种耻辱。 (w天,逻辑在哪里?)PHP是错误设计的完整。使用PHP真的很难看。 – Elmue

+4

@Elmue有很多事情要归咎于PHP,你可以继续这样做。或者你可以接受,这是从C. http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1124.pdf(搜索'strftime')1:1。你想知道,为什么“w”是指工作日?奇怪。在最后(90%),您通常不希望只有月份或日期,而是需要格式化的,区域设置相关的日期字符串。无论如何,你将以'format'结尾。 – KingCrunch

退房手动:http://www.php.net/manual/en/datetime.format.php

<?php 
$date = new DateTime('2000-01-01'); 
echo $date->format('Y-m-d H:i:s'); 
?> 

将输出:2000-01-01 00:00:00

+0

我设置了一个名为TIMESTAMPFORMAT的常量等于'Y-m-d H:i:s'。与DateTime一起使用非常方便 –