我正在尝试使用以下方式将dd-mm-yyyy格式的字符串转换为JavaScript中的日期对象:
var from = $("#datepicker").val();
var to = $("#datepickertwo").val();
var f = new Date(from);
var t = new Date(to);
("#datepicker").val()
包含格式为dd-mm-yyyy的日期。当我执行以下操作时,我得到“无效日期”:
alert(f);
这是因为符号“-”吗?我该如何克服?
分割为“-”
将字符串解析为所需的部分:
var from = $("#datepicker").val().split("-")
var f = new Date(from[2], from[1] - 1, from[0])
使用正则表达式
var date = new Date("15-05-2018".replace( /(\d{2})-(\d{2})-(\d{4})/, "$2/$1/$3"))
为什么不使用正则表达式?
因为您知道将要使用由连字符分隔的三部分组成的字符串。
但是,如果您要在另一个字符串中寻找相同的字符串,则可以使用正则表达式。
重用
因为您在示例代码中(甚至在代码库的其他地方)多次执行此操作,所以将其包装在一个函数中:
function toDate(dateStr) {
var parts = dateStr.split("-")
return new Date(parts[2], parts[1] - 1, parts[0])
}
用作:
var from = $("#datepicker").val()
var to = $("#datepickertwo").val()
var f = toDate(from)
var t = toDate(to)
或者,如果您不介意在函数中使用jQuery,则:
function toDate(selector) {
var from = $(selector).val().split("-")
return new Date(from[2], from[1] - 1, from[0])
}
用作:
var f = toDate("#datepicker")
var t = toDate("#datepickertwo")
现代JavaScript
如果您能够使用更现代的JS,则数组解构也很不错:
const toDate = (dateStr) => {
const [day, month, year] = dateStr.split("-")
return new Date(year, month - 1, day)
}
问题内容: 有什么办法转换的日期到了格式? 如果我尝试这样做: 我有这个例外: 我知道主要的问题,该模式不包含小时和分钟..但是,如果我想创建一个方法,会得到a 和a 并返回 有没有正确的解决方案? 编辑: 我的目标是,制造一种方法,得到a 和a, 然后返回a 。模式可以是任何值(有效的值)。 问题答案: 使用创建LOCALDATE的,然后如果你需要它,你可以添加timepart: 要么 如果您只
我想将日期从07/02/2019转换为2019年7月07日。我的输入值是07/02/2019我想与目标值2019年7月07日进行比较.....请帮助我... public static void main(string[]args)引发ParseException{ 输出:Mon Jul 01 00:00:00 IST 2019这不是我的期望值
问题内容: 我在网络上阅读了更多问题,但还没有找到解决方案。 我有一个完全像这种格式的 字符串, 例如“ 14/05/1994”。 我需要以 相同的格式* 将其隐藏到 java.util.Date 中。 * 我试过了: 但结果是:1994年5月14日星期六星期六00:00:00 结果是:1994年5月14日不是字符串,而是java.util.Date? 问题答案: 一个不 具有 的格式。这只是个约
问题内容: 我有一个格式。我希望它采用以下格式 以下是我尝试进行此转换的示例: 我得到的输出仍然不是格式。 请让我知道如何格式化从到 问题答案: 是自Unix纪元(1970年1月1日UTC:00:00)以来的毫秒数的容器。 它没有格式的概念。 输出…
问题内容: 我有一个日期列,其中日期格式为 在SQL Server中。有什么可能的方法来检索日期格式为 在选择语句中? 问题答案: 试试这个: 源链接 附录1: 如我的评论中所述,您需要先将字段转换为类型,然后才能执行上述操作。此示例应在您的SQL Server上运行: 如果出现此异常: 消息242,级别16,状态3,行1将varchar数据类型转换为datetime数据类型导致超出范围的值。 然
问题内容: 我正在尝试从转换日期。我已经使用了mktime()函数和其他函数,但是我似乎无法使其工作。我已经成功地将原始日期用作定界符,但更改格式并将其与交换时没有成功。 任何帮助将不胜感激。 问题答案: 通过查看各个组成部分之间的分隔符,可以消除或格式中的日期的歧义:如果该分隔符是斜杠(),则假定为American ;否则,为0。反之,如果分隔符是破折号()或点(),则采用欧洲格式。 使用默认的