Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/241.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何将日期时间转换为unix命令日期_Php_Mysql_Xml_Sitemap - Fatal编程技术网

Php 如何将日期时间转换为unix命令日期

Php 如何将日期时间转换为unix命令日期,php,mysql,xml,sitemap,Php,Mysql,Xml,Sitemap,如何在php或mysql中将2014-10-10 04:13:24转换为2014-10-10T04:13:24+00:00 上述日期适用于网站地图中的xml格式 供参考 我尝试过的代码: echo "GIVEN DATE ".$timestamp = "2014-10-10 04:13:24"; echo "<br>"; $year = date('Y',strtotime($timestamp))."; $month = date('m',strtotime($times

如何在php或mysql中将2014-10-10 04:13:24转换为2014-10-10T04:13:24+00:00

上述日期适用于网站地图中的xml格式

供参考

我尝试过的代码:

    echo "GIVEN DATE ".$timestamp = "2014-10-10 04:13:24";
echo "<br>";

$year = date('Y',strtotime($timestamp)).";
$month = date('m',strtotime($timestamp)).";
$day = date('d',strtotime($timestamp))."";
echo '<br>';
$hour = date('H',strtotime($timestamp))."";
$minutes = date('i',strtotime($timestamp))."";
$seconds = date('s',strtotime($timestamp))."<br>";


$gmktime= gmmktime($hour,$minutes,$seconds,$month,$day,$year)."<br>";

echo "output date".$isodate = date('c', $gmktime);

PHP中的

在PHP中,您可以解析时间并将其转换为结构化数组。然后将结果传递到函数中以获取UNIX时间戳

MySQL中的

使用


PHP5

<?php
// Set the default timezone
date_default_timezone_set('UTC');


// Get Unix timestamp for a date
// Reference: mktime(hour, minute, second, month, day, year)
$time = mktime(04, 13, 24, 10, 10, 2014);

// Alternatively (must be a valid English date format)
$time = strtotime('2014-10-10 04:13:24');


// ISO 8601 date (added in PHP 5)
$isodate = date('c', $time);

echo $isodate; // 2014-10-10T04:13:24+00:00


// RFC 2822 formatted date
$rfcdate = date('r', $time);

echo $rfcdate; // Fri, 10 Oct 2014 04:13:24 +0000
?>

参考资料:

  • /
  • /
  • :
  • :
  • 根据Sitemaps.org规范,您的输出是正确的。“
    2014-10-10T06:13:24+02:00
    ”与“
    2014-10-10T04:13:24+00:00
    ”的日期/时间相同

    了解有关Sitemaps.org使用的的的详细信息

    另外,不要用日期函数来解决这个问题,而要用字符串函数/操作来解决这个问题:在固定位置更改字符串中的一个字节,然后附加一个字符串:

    $timestamp = "2014-10-10 04:13:24";
    $timestamp[10] = "T";
    $timestamp .= "+00:00";
    
    echo $timestamp, "\n"; // 2014-10-10T04:13:24+00:00
    
    或者,如果您想在文件中保存一些字节,请使用“
    Z
    ”而不是“
    +00:00
    ”来表示时区:

    $timestamp = "2014-10-10 04:13:24";
    $timestamp[10] = "T";
    $timestamp .= "Z";
    
    echo $timestamp, "\n"; // 2014-10-10T04:13:24Z
    

    这有什么区别?!两个日期都一样。您忘了什么吗?抱歉,请立即检查提示:如果您以有效的英文日期格式存储了日期,则可以使用
    strotime()
    获取Unix时间戳。这样,您就不需要调用
    date()
    mkdate()
    ,这将对可读性和性能产生影响。时间格式的参考是。您所参考的是如何从unix上的文件中以该格式获取上次修改日期。但是格式参考有更多的内容,并且有所不同。请参阅“不工作”,它不符合我在问题中提到的格式。您可以使用
    mkdate
    gmmkdate
    。我添加了一个示例。对于输入2014-10-10 04:13:24,我得到了这个2014-10-10T06:13:24+02:00结果。这是对的吗?有点。这是您所在时区格式正确的日期。如果需要GMT/UTC日期,则必须使用
    gmdate()
    而不是
    date()
    。我把它改了以适应你的需要。谢谢。。它帮助了我:)没有使用日期函数,因为它不是必需的。这个问题不是直接的日期问题,而是一个字符串操作。但是,您应该使用函数来解决这个问题,方法是将示例包装到函数中,然后使用该函数。稍后,您可以轻松更改格式处理,例如,所述优化使用Z作为时区指示符。如果日期已经是UTC,那么这将是正确的,但OP没有说明它是否为UTC+1如果它是UTC,那么时间本身就不是问题。好吧,读一下问题的第一句话,很明显它是同一个时区,时区是UTC。
    $timestamp = "2014-10-10 04:13:24";
    $timestamp[10] = "T";
    $timestamp .= "+00:00";
    
    echo $timestamp, "\n"; // 2014-10-10T04:13:24+00:00
    
    $timestamp = "2014-10-10 04:13:24";
    $timestamp[10] = "T";
    $timestamp .= "Z";
    
    echo $timestamp, "\n"; // 2014-10-10T04:13:24Z