【问题标题】:How to change date format using jQuery/Javascript?如何使用 jQuery/Javascript 更改日期格式?
【发布时间】:2013-09-04 10:11:21
【问题描述】:

今天我想使用 jQuery/Javascript 将日期转换为不同的格式:

$date = '2013-04-01T19:45:11.000Z'
$cool = date('Y-m-d',strtotime($date));

我怎样才能在 jQuery/Javascript 中做到这一点(PHP)?

谢谢!

【问题讨论】:

标签: php javascript jquery date date-formatting


【解决方案1】:

使用javascript date object

<script>
  var date = new Date('2013-04-01T19:45:11.000Z');
  var day = date.getDate();
  var month = date.getMonth();
  var year = date.getFullYear();

  document.write(year + '-' + month + '-' + day);
</script>

【讨论】:

  • 值得注意的是,.getMonth 返回从零开始的月份版本(January=0、 February=1、December=11 等)。如果您打算以这种方式返回正确的日期,您可能应该在月份中添加一个:var month = date.getMonth() + 1;
【解决方案2】:

对于 javascript Sun, 01 Sep 13 08:06:57 +0000,您需要这种格式的日期 所以在 PHP 中你需要做这样的事情

date_default_timezone_set('Australia/Perth');
echo date('D, d M y H:i:s')." +0000";

你可以尝试用 jQuery 来检查它

$.get('dateformat.php', function(data) {
  date = new Date(data);
  console.log(date);  
});

然后您可以根据需要格式化日期

自行格式化日期对象的示例:

$.date = function(dateObj) {
    var d = new Date(dateObj);
    var day = d.getDate();
    var month = d.getMonth() + 1;
    var year = d.getFullYear();

    if (month < 10) {
        month = "0" + month;
    }
    return year + "." + month + "." + day;
};

一个jquery插件,可以帮助你格式化类似于php的日期

https://github.com/phstc/jquery-dateFormat

你可以用它来应用这样的格式

$.format.date("2009-12-18 10:54:50.546", "Test: dd/MM/yyyy")

我想就是这样。

【讨论】:

  • 为什么你会说你需要这种格式的 JavaScript?那不是真的。 JavaScript 原生支持许多不同的日期格式。 Here are some examples
  • Op 表示他想使用像 'Y-m-d' 这样的东西,这就是我提到插件的原因,否则我写了一个示例如何手动完成
  • 我指的是你回答的第一句话。
  • @Dachi,我正在尝试使用 jquery 日期格式插件格式化日期,但没有成功。你能给我一个使用github.com/phstc/jquery-dateFormat插件的jsfiddle链接的例子吗?
  • @Dachi,谢谢你的帮助
【解决方案3】:

如果您的目标是更新的浏览器,那么您可以直接在 JavaScript 中解析它,就像 fujy 或 LeGrande 展示的那样。但是当你这样做时,要明白你传递的 UTC 日期将被转换为浏览器的本地时区。

如果您想要更大的灵活性和完全的浏览器兼容性,那么您应该使用像 moment.js 这样的库。

// Parse it to a moment
var m = moment("2013-04-01T19:45:11.000Z");

// Format it in local time in whatever format you want
var s = m.format("YYYY-MM-DD  HH:mm:ss")

// Or treat it as UTC and then format it
var s = m.utc().format("YYYY-MM-DD  HH:mm:ss")

【讨论】:

    【解决方案4】:

    JavaScript 足够聪明,可以接受不同格式的日期

    var d1 = new Date('2013-04-01T19:45:11.000Z');
    

    【讨论】:

    • 好吧,无论如何,大多数现代浏览器都是如此。
    猜你喜欢
    • 1970-01-01
    • 2014-07-19
    • 1970-01-01
    • 2012-11-04
    • 1970-01-01
    • 2016-07-28
    • 2023-04-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多