Php 函数 - 如何更改特定格式的任何日期格式(包括 unix 时间戳格式)?

Php function - How can I change any date format in a particular format (including unix timestamp format)?

几天前,我寻求一种解决方案,让我能够从任何其他日期格式开始获取特定的日期格式。我正在使用的解决方案在 中被标记为最佳答案。 通过使用这个解决方案,我没有遇到任何问题,但我今天发现自己要处理另一个小问题。在实践中,我还需要将格式日期unix时间戳(以毫秒为单位)转换为格式'Y-m-d'。我尝试了几种解决方案,但如果我尝试将它们与此功能结合使用,我会遇到问题:

function change_date_format($x) {
    $date = new DateTime($x);
    return $date->format('Y-m-d');
}

我相信你的帮助, 非常感谢

阅读 DateTime object documentation 会对您有所帮助

function change_date_format_from_unix_timestamp($x) {
    // convert from milliseconds to seconds
    $x = floor($x / 1000);
    // convert timestamp to DateTime object
    $date = DateTime::createFromFormat('U', $x);
    // return formatted date
    return $date->format('Y-m-d');
}

也许是这样的?

function change_date_format($x){
  if(is_numeric($x)){
    $date = new DateTime();
    $date->setTimestamp($x);
  } else {
    $date = new DateTime($x);
  }

  return $date->format('Y-m-d');
}

现在时间戳包含毫秒,除以1000即可。

为什么这么复杂?
参见 http://php.net/manual/en/function.date.php
你可以直接在phps日期函数中使用日期格式和unix时间戳。

function change_date_format($x){
   return date('Y-m-d', $x/1000);
}