如何将使用 datetimepicker 获得的值转换为日期和时间?

Posted

技术标签:

【中文标题】如何将使用 datetimepicker 获得的值转换为日期和时间?【英文标题】:How can I convert the value I get with datetimepicker to date and time? 【发布时间】:2021-09-16 01:15:32 【问题描述】:
var innerDate = document.getElementById('datetimepicker3').value;

我从这行得到的格式是:innerDate: "2021/07/07 14:00"

但是我需要在这里解析日期和时间信息。如何将开始日期和开始时间转换为两个单独的变量?

【问题讨论】:

尝试使用 momentjs 或 Luxon ,这些是用于操作日期和更改格式的出色库 【参考方案1】:

我建议使用moments.js 解析该字符串,然后根据您的需要get the individual parts 进行计算或应用所需的formatting

可在https://jsfiddle.net/Ly6qen3w/获取示例

let innerDateInput = "2021/07/07 14:00";
let innerDateMoment = moment(innerDateInput, "YYYY/MM/DD hh:mm");

console.log("Date:"+innerDateMoment.format("YYYY-MM-DD"));
console.log("Time:"+innerDateMoment.format("hh:mm"));

【讨论】:

【参考方案2】:

试试这个:

var innerDate = new Date(document.getElementById('datetimepicker3').value)

或者您可以附加一个事件处理程序以在日期发生变化时获取日期

<script type="text/javascript">
   $("#datetimepicker3").on("dp.change", function (e) 
        let date = e.date;
        console.log(date);
        // no need to convert to a date
   );
</script>

【讨论】:

@try123 看看这个!【参考方案3】:

您可以使用 JavaScript 提供的各种方法在不同的变量中简单地获取它来获取所有内容。

你可以做的是(id 它是一个日期对象,否则你必须将它转换为日期对象)

let startDate = new Date(innerDate).getDate() + "/" + new Date(innerDate).getMonth() + "/" + new Date(innerDate).getFullYear();

let startTime = new Date("2021/07/07 14:00").getHours() +":"+ new Date("2021/07/07 14:00").getMinutes()

如果您想要其他内容,也可以使用毫秒、UFC 时间等方法检索。

如果你觉得这很混乱,我建议你使用 moment.js。 https://momentjs.com/

【讨论】:

几个月只需 +1,因为它会减少 1 的价值。

以上是关于如何将使用 datetimepicker 获得的值转换为日期和时间?的主要内容,如果未能解决你的问题,请参考以下文章

如何设置datetimepicker的值

如何将 DateTimePicker 下拉菜单设置为仅选择年或月?

将 DateTimePicker 时间格式值设置为从数据库 VB.NET 返回的值

如何将winforms datetimepicker设置为没有默认值?

构建 SQL 查询以在 C# 中的 2 个 DateTimePickers 的值之间进行搜索

如何将 twitter bootstrap datetimepicker 的日期设置为数据库中的日期而不被 maxDate 覆盖