如何在PHP中获取当前date和时间?
哪个PHP函数可以返回当前的date/时间?
时间将由您的服务器时间。 一个简单的解决方法是在date()
或time()
函数被调用之前通过使用date_default_timezone_set
手动设置时区。
我在澳大利亚墨尔本,所以我有这样的事情:
date_default_timezone_set('Australia/Melbourne');
或者另一个例子是洛杉矶 – 美国 :
date_default_timezone_set('America/Los_Angeles');
您还可以通过以下方式查看服务器当前的时区:
date_default_timezone_get();
所以像这样:
$timezone = date_default_timezone_get(); echo "The current server timezone is: " . $timezone;
所以你的问题的简短答案是:
// Change the line below to your timezone! date_default_timezone_set('Australia/Melbourne'); $date = date('m/d/Y h:i:s a', time());
那么所有的时间将是你刚刚设置的时区:)
// Simply: $date = date('Ymd H:i:s'); // Or: $date = date('Y/m/d H:i:s'); // This would return the date in the following formats respectively: $date = '2012-03-06 17:33:07'; // Or $date = '2012/03/06 17:33:07'; /** * This time is based on the default server time zone. * If you want the date in a different time zone, * say if you come from Nairobi, Kenya like I do, you can set * the time zone to Nairobi as shown below. */ date_default_timezone_set('Africa/Nairobi'); // Then call the date functions $date = date('Ymd H:i:s'); // Or $date = date('Y/m/d H:i:s'); // date_default_timezone_set() function is however // supported by PHP version 5.1.0 or above.
有关时区参考,请参阅支持的时区列表 。
从PHP 5.2.0
您可以使用OOP和DateTime()
(当然,如果您更喜欢OOP):
$now = new DateTime(); echo $now->format('Ymd H:i:s'); // MySQL datetime format echo $now->getTimestamp(); // Unix Timestamp -- Since PHP 5.3
并指定timezone
:
$now = new DateTime(null, new DateTimeZone('America/New_York')); $now->setTimezone(new DateTimeZone('Europe/London')); // Another way echo $now->getTimezone();
参考:这是一个链接
由于夏令时间的原因,这比简单地将一天或一个月中的秒数加上或减去时间戳的秒数更可靠。
PHP代码
// Assuming today is March 10th, 2001, 5:16:18 pm, and that we are in the // Mountain Standard Time (MST) Time Zone $today = date("F j, Y, g:ia"); // March 10, 2001, 5:16 pm $today = date("mdy"); // 03.10.01 $today = date("j, n, Y"); // 10, 3, 2001 $today = date("Ymd"); // 20010310 $today = date('his, jmy, it is w Day'); // 05-16-18, 10-03-01, 1631 1618 6 Satpm01 $today = date('\i\t \i\s \t\h\e jS \d\a\y.'); // it is the 10th day. $today = date("DM j G:i:s TY"); // Sat Mar 10 17:16:18 MST 2001 $today = date('H:m:s \m \i\s\ \m\o\n\t\h'); // 17:03:18 m is month $today = date("H:i:s"); // 17:16:18 $today = date("Ymd H:i:s"); // 2001-03-10 17:16:18 (the MySQL DATETIME format)
您可以使用$_SERVER['REQUEST_TIME']
variables (自PHP 5.1.0起可用)或time()
函数获取当前的Unix时间戳。
PHP的time()返回当前的unix时间戳。 有了这个,你可以使用date()函数来将其格式化为你的需要。
$date = date('Format String', time());
Paolo在评论中提到,第二个论点是多余的。 以下片段相当于上面的片段:
$date = date('Format String');
PHP的date函数可以完成这项工作
date()
说明:
string date ( string $format [, int $timestamp = time() ] )
如果没有给定时间戳,则返回按给定格式string格式化的string,使用给定的整数时间戳或当前时间。
例子 :
$today = date("F j, Y, g:ia"); // March 10, 2001, 5:16 pm $today = date("mdy"); // 03.10.01 $today = date("j, n, Y"); // 10, 3, 2001 $today = date("Ymd"); // 20010310 $today = date('his, jmy, it is w Day'); // 05-16-18, 10-03-01, 1631 1618 6 Satpm01 $today = date('\i\t \i\s \t\h\e jS \d\a\y.'); // it is the 10th day. $today = date("DM j G:i:s TY"); // Sat Mar 10 17:16:18 MST 2001 $today = date('H:m:s \m \i\s\ \m\o\n\t\h'); // 17:03:18 m is month $today = date("H:i:s"); // 17:16:18 $today = date("Ymd H:i:s"); // 2001-03-10 17:16:18 (the MySQL DATETIME format)
您可以同时使用$ _SERVER ['REQUEST_TIME']variables或** time()**函数。 这两个都会返回一个Unix时间戳。
大部分时间这两个解决scheme将产生完全相同的Unix时间戳。 这两者之间的区别在于$ _SERVER ['REQUEST_TIME']返回最近服务器请求的时间戳,time()返回当前时间。 这可能会在您的应用程序中产生精确度的细微差异,但是在大多数情况下,这些解决scheme都应该足够了。
根据上面的示例代码,一旦获得Unix时间戳,您将要格式化此信息。 一个unformatted Unix时间戳看起来像这样…
Unix时间戳:1232659628
所以为了得到可以工作的东西,可以使用date()函数来设置它的格式。
使用date()函数的方法的一个很好的参考位于PHP手册页,在这里…
作为一个例子,下面的代码返回一个看起来像这样的date –
01/22/2009 04:35:00 pm
echo date("m/d/Y h:i:sa", time());
$date = new DateTime('now', new DateTimeZone('Asia/Kolkata')); echo $date->format('dmY H:i:s');
更新
//Also get am/pm in datetime: echo $date->format('dmY H:i:s a'); // output 30-12-2013 10:16:15 am
对于date格式, PHP date()函数是有用的。
$date = date('m/d/Y h:i:s a', time());
工作,但如何也知道是否是EST,PST?
echo date("dmY H:i:sa");
此代码将获取运行代码的服务器的date和时间。
根据文章如何获取当前date时间(NOW)与PHP ,有两种常见的方法来获取当前date。 要使用PHP获取当前date时间(现在),可以使用任何PHP版本的date
类,或者使用PHP> = 5.2的datetime
类更好。
各种date格式expression式在这里可用。
使用date的示例
这个expression式将以格式Ymd H:i:s
forms返回。
<?php echo date('Ymd H:i:s'); ?>
使用datetime类的示例
这个expression式将以格式Ymd H:i:s
forms返回。
<?php $dt = new DateTime(); echo $dt->format('Ymd H:i:s'); ?>
你也可以使用这种格式
$date = date("dmY");
要么
$date = date("Ymd H:i:s");
<?php echo "<b>".date('l\, F jS\, Y ')."</b>"; ?>
打印像这样
2012年12月9日星期日
其非常简单
echo $ date = date('Ymd H:i:s');
如果你想要一个不同的时间表,请使用:
$tomorrow = mktime(0, 0, 0, date("m") , date("d")+1, date("Y")); $lastmonth = mktime(0, 0, 0, date("m")-1, date("d"), date("Y")); $nextyear = mktime(0, 0, 0, date("m"), date("d"), date("Y")+1); date_default_timezone_set("Asia/Calcutta"); echo date("Y/m/d H:i:s");
设置你的时区:
date_default_timezone_set('Asia/Calcutta');
然后调用date函数
$date = date('Ymd H:i:s');
date_default_timezone_set('Europe/Warsaw'); echo("<p class='time'>".date('H:i:s')."</p>"); echo("<p class='date'>".date('d/m/Y')."</p>");
date(format,timestamp)
date函数返回一个string格式,根据给定的格式string使用给定的整数时间戳或当前的时间,如果没有给出时间戳。 换句话说,时间戳是可选的,并且默认为time()的值。
参数是 –
格式 – 必需。 指定时间戳的格式
timestamp – (可选)指定时间戳。 默认是当前date和时间
如何得到一个简单的date
date()
函数所需的格式参数指定如何格式化date (or time)
。
以下是一些date常用的字符:
- d – 表示月份的date(01至31)
- m – 代表一个月(01至12)
- Y – 代表一年(四位数字)
- l(小写'L') – 表示星期几
其他字符,如"/", ".", or "-"
也可以插入字符之间以添加其他格式。
下面的例子以三种不同的方式格式化今天的date:
<?php echo "Today is " . date("Y/m/d") . "<br>"; echo "Today is " . date("Ymd") . "<br>"; echo "Today is " . date("Ymd") . "<br>"; echo "Today is " . date("l"); ?>
一些有用的链接
- gmdate() – 格式化GMT / UTCdate/时间
- idate() – 将整个本地时间/date格式化
- getdate() – 获取date/时间信息
- getlastmod() – 获取上次页面修改的时间
- mktime() – 获取一个date的Unix时间戳
- strftime() – 根据区域设置格式化本地时间/date
- time() – 返回当前的Unix时间戳
- strtotime() – 将任何英文文本date时间描述parsing为Unix时间戳记
- 预定义的date时间常量
<?php // Assuming today is March 10th, 2001, 5:16:18 pm, and that we are in the // Mountain Standard Time (MST) Time Zone $today = date("F j, Y, g:ia"); // March 10, 2001, 5:16 pm $today = date("mdy"); // 03.10.01 $today = date("j, n, Y"); // 10, 3, 2001 $today = date("Ymd"); // 20010310 $today = date('his, jmy, it is w Day'); // 05-16-18, 10-03-01, 1631 1618 6 Satpm01 $today = date('\i\t \i\s \t\h\e jS \d\a\y.'); // it is the 10th day. $today = date("DM j G:i:s TY"); // Sat Mar 10 17:16:18 MST 2001 $today = date('H:m:s \m \i\s\ \m\o\n\t\h'); // 17:03:18 m is month $today = date("H:i:s"); // 17:16:18 $today = date("Ymd H:i:s"); // 2001-03-10 17:16:18 (the MySQL DATETIME format) ?>
我发现用PHP获取当前时间最简单的方法就是这样。
//Prints out something like 10:00am Just be sure to set your timezone correctly. date_default_timezone_set("America/Chicago"); $TIME = date('G:ia');
date格式也取决于:
echo date("d/m/YH:i:sa"); // 13/04/2017 19:38:15pm
你可以使用这个代码。
<?php $currentDateTime = date('Ymd H:i:s'); echo $currentDateTime; ?>
获取当前date和时间的时间戳的另一种简单方法是使用mktime()函数
$now = mktime(); //return timestamp of current time
那么你可以将其转换为另一种date格式:
//// Prints something like: Thursday 26th of January 2017 01:12:36 PM echo date('l jS \of FY h:i:s A',$now);
更多的date格式在这里: http : //php.net/manual/en/function.date.php
// set the default timezone to use. Available since PHP 5.1 date_default_timezone_set('UTC'); // Prints something like: Monday echo date("l"); // Prints something like: Monday 8th of August 2016 03:12:46 PM echo date('l jS \of FY h:i:s A'); // Prints: July 1, 2016 is on a Saturday echo "July 1, 2016 is on a " . date("l", mktime(0, 0, 0, 7, 1, 2016)); /* use the constants in the format parameter */ // prints something like: Wed, 25 Sep 2013 15:28:57 -0700 echo date(DATE_RFC2822); // prints something like: 2016-07-01T00:00:00+00:00 echo date(DATE_ATOM, mktime(0, 0, 0, 7, 1, 2000));
如果你想分别得到date,如12-3-2016每日,月份和年份值,然后复制粘贴此代码
$day=date("d"); $month=date("m"); $year=date("y"); print "date".$day."-".$month."-".$year;
如果你是孟加拉人。 如果你想得到达卡的时间,然后使用它
$date = new DateTime(); $date->setTimeZone(new DateTimeZone("Asia/Dhaka")); $get_datetime = $date->format('dmY H:i:s');
PHP会以秒为单位返回当前时间,您需要以任何您想要的格式来格式化它们
<?php //time() returns current time in seconds $in_seconds = time(); //strftime - Format a local time/date according to locale settings echo strftime("%m/%d/%y",$in_seconds); ?>
参考: http : //php.net/manual/en/function.strftime.php
这可能会帮助你。
以下是一些常用的字符:
- 小时 – 12小时格式,前导零(01到12)
- 我 – 分钟与前导零(00至59)
- 秒 – 前导零(00到59)
-
a – 小写前缀meridiem和后期meridiem(上午或下午)
获取您的时区
<?php date_default_timezone_set("America/New_York"); echo "The time is " . date("h:i:sa"); ?>
检查了这一点(可选)
<?php $d=mktime(11, 14, 54, 8, 12, 2014); echo "Created date is " . date("Ymd h:i:sa", $d); ?>
为date
<?php echo "Today is " . date("Y/m/d") . ; echo "Today is " . date("Ymd") . ; echo "Today is " . date("Ymd") . ; echo "Today is " . date("l"); ?>
以下是一些date常用的字符:
- d – 表示月份的date(01至31)
- m – 代表一个月(01至12)
- Y – 代表一年(四位数字)
- l(小写'L') – 表示星期几
来源-W3-学校