Используйте moment.js для синтаксического анализа дат:
var caseOne = moment("Jul 8, 2005", "MMM D, YYYY", true).toDate();
var caseTwo = moment("2005-07-08", "YYYY-MM-DD", true).toDate();
Третий аргумент определяет строгий разбор (доступно с 2.3.0). Без него moment.js также может давать неверные результаты.
Поскольку это асинхронный, у вас есть несколько вариантов. Основным является использование обратного вызова:
function createUniqueKey (arg1, arg2, callback) {
$.post("/ajax/documents.php", {arg_1: arg1, arg_2 : arg2}, function(data){
console.log(data) //Good result
callback(data);
}, "text");
}
$('#btn').click(function() {
createUniqueKey(arg1, arg2, function(uniqueKey){
console.log(uniqueKey);
})
});
Другой вариант - выяснить, как реализовать его как Promise или использовать функции Async:
function createUniqueKey (arg1, arg2) {
return new Promise(function(resolve, reject) {
$.post("/ajax/documents.php", {arg_1: arg1, arg_2 : arg2}, function(data){
console.log(data) //Good result
resolve(data);
}, "text");
})
}
$('#btn').click(function() {
createUniqueKey(arg1, arg2).then(function(uniqueKey) {
console.log(uniqueKey);
})
});
. Обратный вызов .click эквивалентно этому
$('#btn').click(async function() {
var uniqueKey = await createUniqueKey(arg1, arg2);
console.log(uniqueKey);
});