AngularJS 之间的管理时间格式 - MySQL.

mange time format between angularjs - mysql

本文关键字:格式 MySQL 时间 管理 之间 AngularJS      更新时间:2023-09-26

我在AngularJS(JavaScript) - PHP - MySQL之间管理时间格式时遇到麻烦。我通过 php 将 24:00:00、12:00:00、01:30:00、05:34:00 等时间从角度存储到 mysql。在这里,我使用的是 mysql 的时间类型。在通过 php 从 mysql 接收时间时,我得到了字符串,但 javascript 不理解日期对象,那么只有我才能显示为视图的时间。有什么想法可以处理这种情况吗? 我使用了一些时间选择器,但这些并没有使我的结果更好,我添加了使用的插件列表,请参阅以及您指导我处理此问题。

演示链接

GitHub 链接

在这里,作者用作指令,但我错误地使用上述时间格式初始化模型,我在控制台中获取无效日期作为结果,同时选择日期,提交后空值仅作为模型值传递给服务器。

有时更容易

使用Date.prototype.getTime()

var birthday = new Date(1994, 12, 10);
var time = birthday.getTime(); // 789696000000
var date2 = new Date(time); // Same as birthday 

然后在后端,您可以使用简单的助手将其转换为日期。我有一些C#(将其迁移到PHP或应该很容易)代码来完成这项工作:

public class JsDateHelper : IJsDateHelper
{
    public DateTime FromUnixTime(double unixTime)
    {
        var epoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
        return epoch.AddMilliseconds(unixTime);
    }
    public long ToUnixTime(DateTime date)
    {
        var epoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
        return Convert.ToInt64((date - epoch).TotalMilliseconds);
    }
}

通过这样做,您将在数据库中存储数字789696000000并将其传递给角度,您将使用 new Date(789696000000) 将其转换为实际日期 我认为这种方式降低了复杂性,因为您只需担心显示日期时的格式。

希望对您有所帮助!