Javascript llegal radix 0 при преобразовании объекта Date в строку времени (дд.мм.гггг)
Я пытаюсь преобразовать DateObject в читаемый формат (dd.MM.yyyy) с DateJS. Я получаю сообщение об ошибке:"llegal radix 0" при попытке преобразовать его в строку.
Код:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Pick the date</title>
<link type="text/css" href="css/smoothness/jquery-ui-1.8.14.custom.css" rel="Stylesheet" />
<script type="text/javascript" src="js/jquery-1.5.1.min.js"></script>
<script type="text/javascript" src="js/jquery-ui-1.8.14.custom.min.js"></script>
<script src="inc/date-fi-FI.js" type="text/javascript"></script>
<script type="text/javascript">
function parseDate() {
var date = $('#date').val();
var parsedDate = Date.parse(date);
alert('Parsed date: '+parsedDate);
}
function jämförMedIdag (datum) {
if (datum == null || datum == "") {
alert('Inget datum!');
return;
}
/*resultat = Date.compare(Datum1,Datum2);
alert(resultat); */
var datum = Date.parse(datum);
var dagar = datum.getDate();
var månader = datum.getMonth();
var år = datum.getYear();
var nyttDatum = new Date();
nyttDatum.setFullYear(år,månader,dagar);
var idag = new Date();
if(nyttDatum>idag) {
var svar = nyttDatum - idag;
svar = svar.toString("dd.MM.yyyy");
alert(svar);
return(svar);
} else {
var svar = idag - nyttDatum;
svar = svar.toString("dd.MM.yyyy");
alert(svar);
return(svar);
}
}
</script>
</head>
<body>
<form>
<input type="text" name="date" id="date" value ="13.03.1990" />
<input type="button" onclick="jämförMedIdag(document.getElementById('date').value)" value="Compare the date" />
</form>
</body>
</html>
Посмотрите это в действии: http://resk.latvalashop.com/date.php
1 ответ
Решение
Вычитание Date
s не возвращает новую дату, но число. Чтобы преобразовать его в Date
, попробуй это:
new Date(endDate - startDate).toString("dd.MM.yyyy");
Однако, если вы пытаетесь увидеть разницу (например, 1 month
), это не поможет, потому что оно начнется 1 января 1970 года.
Чтобы быть точным, число, которое вы получаете, представляет собой количество миллисекунд с 1 января 1970 года. Таким образом, разница, выраженная в виде числа, представляет собой разницу в секундах. Неделя 7 * 24 * 60 * 60 * 1000
миллисекунды, так что используйте что-то вроде:
if(endDate - startDate > 7 * 24 * 60 * 60 * 1000) {
alert("Difference is more than a week");
}