当前位置: 首页 > 面试题库 >

无法格式化默认的MySQL日期时间

皮献
2023-03-14
问题内容

我的日期来自数据库,如下所示: 2013-11-21 17:43:20

我正在尝试使用Angular的日期过滤器将它们变成更漂亮的东西,但是…

{{Objected.created | date:'shortDate'}}

要么

{{Objected.created | date:'YYYY'}}

…只是吐出原始日期时间字符串:2013-11-21 17:43:20。没有错误。我究竟做错了什么?

更新 我看到MySQL的默认日期时间与Angular的数据过滤器期望的不兼容。我正在尝试像这样即时转换它,但会引发错误:

<li ng-repeat="result in data">{{ new Date(result.Job.created).toISOString() | date:'shortDate'}}</li>

我怀疑我无法以尝试的方式实例化Date类。该错误是$ parse:syntax错误。

更新资料

感谢@ m59的帮助,我做了一些小的调整。

HTML:

<html ng-app="myApp">
...
{{Object.created | dateToISO | date:'shortDate'}}

JS:

var myApp = angular.module('myApp',[]);

myApp.filter('dateToISO', function() {
  return function(input) {
    input = new Date(input).toISOString();
    return input;
  };
});

这个自定义过滤器将默认的MySQL日期时间转换为日期过滤器期望的格式,因此我将其发送给它,然后又抛出另一个“瞧”。


问题答案:

您需要将日期字符串转换为Angular支持的格式,例如ISO 8601格式。您可以这样转换:

$scope.Object.created = new Date($scope.Object.created).toISOString();

现场演示在这里(单击)。

为此,您需要一个自定义过滤器现场演示在这里(单击)。

标记:

<div>{{Object.created | dateToISO | date:'shortDate'}}</div>

JavaScript:

app.filter('dateToISO', function() {
  return function(input) {
    return new Date(input).toISOString();
  };
});

更新:

这是手动转换日期(Firefox)的简单方法:

app.filter('badDateToISO', function() {
  return function(badTime) {
    var goodTime = badTime.replace(/(.+) (.+)/, "$1T$2Z");
    return goodTime;
  };
});


 类似资料:
  • 第一次使用Oracle SQL(我习惯使用MySQL)。我发现关于默认日期格式的信息有冲突。在多次尝试使用INSERT IN my\u table语句的to\u DATE之后,我终于找到了我正在使用的数据库expects DD-MON-YY(即2018年1月25日)。然而,在stackoverflow和其他地方的不同页面上,我看到一些人说默认值是YYYYMMDD或DD/MM/YYYY或YYYY-M

  • 我正在尝试格式化结果,并在用户的当前设备区域设置中向用户显示它。 当前,我可以显示整个,如下所示: 2018-10-08 16:08:37.464112 或者通过像这样指定确切的格式: 这导致以下内容: 08.10.2018 我对这个解决方案的问题是,虽然这种格式在欧盟可能是可以接受的;例如,在美国(和许多其他国家),他们习惯于不同的日期格式,例如。 10/08/2018 我的问题是:如何以当前语

  • 但以下内容: 只是管用。 日期的大小写相同。

  • 问题内容: 是否可以使用NOW()将默认时间添加为10分钟? 我已经尝试过类似的方法: 但是,它不起作用。 问题答案: 我不认为你可以做到这一点。 在MySQL的文件指出: 数据类型规范中的DEFAULT value子句指示列的默认值。除一个例外,默认值必须为常数;否则为0。它不能是函数或表达式。例如,这意味着您不能将日期列的默认值设置为诸如NOW()或CURRENT_DATE之类的函数的值。唯一

  • 主要内容:日期格式化符号,Python处理,Pandas处理当进行数据分析时,我们会遇到很多带有日期、时间格式的数据集,在处理这些数据集时,可能会遇到日期格式不统一的问题,此时就需要对日期时间做统一的格式化处理。比如“Wednesday, June 6, 2020”可以写成“6/6/20”,或者写成“06-06-2020。 日期格式化符号 在对时间进行格式化处理时,它们都有固定的表示格式,比如小时的格式化符号为 ,分钟简写为 ,秒简写为 。下表对常用的日期

  • 问题内容: 当我创建一个表并在mysql中创建类型为date的字段时,它会像0000-00-00一样存储日期。可以将格式更改为“ dm-Y”吗? 问题答案: 转到MySQL参考-10.5。数据类型存储要求 搜索: 日期和时间类型的存储要求 日期在内部存储为 但是,如果您选择 显示 日期列,则必须以 某种 方式 显示 它,因此它会以0000-00-00的形式出现。它 不会 以该特定格式存储为char