Erreur d'exécution Microsoft JScript: '$ .format' est nul ou n'est pas un objet
DotnetSparrow
avez-vous inclus le plugin qui inclut les fonctions de format?
zzzzBov
39
Sneaky one liner pour aaaa-mm-jj:new Date().toJSON().substring(0,10)
Mike Causer
c'est fformat (double f)
jorrebor
10
ATTENTION! le code lisse: new Date().toJSON().substring(0,10)a bien fonctionné, mais il renvoie la date au format GMT! Comme nous avons 7 heures de retard sur GMT, je me trompais de date après 17h00. Je viens de perdre quelques heures à trouver la cause / soupir /. Référence
JayRO-GreyBeard
Réponses:
106
jQuery dateFormat est un plugin séparé. Vous devez charger cela explicitement à l'aide d'une <script>balise.
Une alternative serait la simple fonction js date (), si vous ne voulez pas utiliser le plugin jQuery / jQuery:
par exemple:
var formattedDate = newDate("yourUnformattedOriginalDate");
var d = formattedDate.getDate();
var m = formattedDate.getMonth();
m += 1; // JavaScript months are 0-11var y = formattedDate.getFullYear();
$("#txtDate").val(d + "." + m + "." + y);
il sera pratique d'ajouter des secondes comme l'a fait @sein
wpcoder
C'est bon jusqu'à ce que l'utilisateur veuille la date récente ou qu'une date soit introduite dans l' Dateobjet. Que diriez-vous d'obtenir la date dans le même format mais 6 mois avant la date du fed ??
Sanjok Gurung
32
Voici une fonction vraiment basique que je viens de créer qui ne nécessite aucun plug-in externe:
$.date = function(dateObject) {
var d = newDate(dateObject);
var day = d.getDate();
var month = d.getMonth() + 1;
var year = d.getFullYear();
if (day < 10) {
day = "0" + day;
}
if (month < 10) {
month = "0" + month;
}
var date = day + "/" + month + "/" + year;
return date;
};
merci super cool facile à utiliser j'ai essayé de travailler parfaitement
Adnan Zaheer
27
ThulasiRam, je préfère votre suggestion. Cela fonctionne bien pour moi dans une syntaxe / contexte légèrement différent:
var dt_to = $.datepicker.formatDate('yy-mm-dd', newDate());
Si vous décidez d'utiliser datepicker à partir de l' interface utilisateur JQuery , assurez-vous d'utiliser les références appropriées dans la section <head> de votre document:
Je suis d'accord user3812343! Moment JS est génial - très facile à assimiler par ceux qui ont travaillé avec la syntaxe .NET.
Dominik Ras
besoin en année mois jour heure minute seconde?
Chaitanya Desai
15
J'espère que ce code résoudra votre problème.
var d = newDate();
var curr_day = d.getDate();
var curr_month = d.getMonth();
var curr_year = d.getFullYear();
var curr_hour = d.getHours();
var curr_min = d.getMinutes();
var curr_sec = d.getSeconds();
curr_month++ ; // In js, first month is 0, not 1
year_2d = curr_year.toString().substring(2, 4)
$("#txtDate").val(curr_day + " " + curr_month + " " + year_2d)
Notez que cela vous donne une date un mois dans le passé (sauf si elle est consultée en janvier, auquel cas elle vous donne '00' pour le mois) car date.getMonth () est un index de base zéro.
jaybrau
7
Ajoutez cette fonction à votre <script></script>et appelez de l'endroit où vous voulez<script></script>
Cette 2ème option me donne "l'argument de base doit être compris entre 2 et 36 à Number.toString". Il plante.
IRGeekSauce
6
Bien que cette question ait été posée il y a quelques années, un plugin jQuery n'est plus nécessaire à condition que la valeur de date en question soit une chaîne avec un format mm/dd/yyyy(comme lors de l'utilisation d'un sélecteur de date);
var birthdateVal = $('#birthdate').val();
//birthdateVal: 11/8/2014var birthdate = newDate(birthdateVal);
//birthdate: Sat Nov 08 2014 00:00:00 GMT-0500 (Eastern Standard Time)
vous pouvez utiliser le code ci-dessous sans le plugin.
<scriptsrc="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script><scriptsrc="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script><linkrel="stylesheet"href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css"><script>
$( function() {
//call the function on page load
$( "#datepicker" ).datepicker();
//set the date format here
$( "#datepicker" ).datepicker("option" , "dateFormat", "dd-mm-yy");
// you also can use // yy-mm-dd// d M, y// d MM, y// DD, d MM, yy// 'day' d 'of' MM 'in the year' yy (With text - 'day' d 'of' MM 'in the year' yy)
} );
</script>
Pick the Date: <inputtype="text"id="datepicker">
Cela a fonctionné pour moi avec une légère modification et sans aucun plugin
Entrée: mercredi 11 avril 2018 00:00:00 GMT + 0000
$.date = function(orginaldate) {
var date = newDate(orginaldate);
var day = date.getDate();
var month = date.getMonth() + 1;
var year = date.getFullYear();
if (day < 10) {
day = "0" + day;
}
if (month < 10) {
month = "0" + month;
}
var date = month + "/" + day + "/" + year;
return date;
};
$.date('Wed Apr 11 2018 00:00:00 GMT+0000')
Je ne sais pas si je suis autorisé à répondre à une question qui a été posée il y a 2 ans car c'est ma première réponse sur stackoverflow mais voici ma solution;
Si vous avez une fois récupéré la date de votre base de données MySQL, divisez-la puis utilisez les valeurs divisées.
$(document).ready(function () {
var datefrommysql = $('.date-from-mysql').attr("date");
var arraydate = datefrommysql.split('.');
var yearfirstdigit = arraydate[2][2];
var yearlastdigit = arraydate[2][3];
var day = arraydate[0];
var month = arraydate[1];
$('.formatted-date').text(day + "/" + month + "/" + yearfirstdigit + yearlastdigit);
});
Les réponses basées uniquement sur le code sont déconseillées car elles n'expliquent pas comment elles résolvent le problème. Veuillez mettre à jour votre réponse pour expliquer comment cela améliore les nombreuses autres réponses acceptées et votées pour cette question. En outre, cette question a 6 ans, vos efforts seraient plus appréciés par les utilisateurs qui ont récemment posé des questions sans réponse. Veuillez consulter Comment écrire une bonne réponse .
FluffyKitten
1
La réponse n'a pas mentionné que l'interface utilisateur jQuery était requise
new Date().toJSON().substring(0,10)
new Date().toJSON().substring(0,10)
a bien fonctionné, mais il renvoie la date au format GMT! Comme nous avons 7 heures de retard sur GMT, je me trompais de date après 17h00. Je viens de perdre quelques heures à trouver la cause / soupir /. RéférenceRéponses:
jQuery dateFormat est un plugin séparé. Vous devez charger cela explicitement à l'aide d'une
<script>
balise.la source
ajoutez le plugin jquery ui dans votre page.
$("#txtDate").val($.datepicker.formatDate('dd M yy', new Date()));
la source
Une alternative serait la simple fonction js date (), si vous ne voulez pas utiliser le plugin jQuery / jQuery:
par exemple:
var formattedDate = new Date("yourUnformattedOriginalDate"); var d = formattedDate.getDate(); var m = formattedDate.getMonth(); m += 1; // JavaScript months are 0-11 var y = formattedDate.getFullYear(); $("#txtDate").val(d + "." + m + "." + y);
voir: 10 façons de formater l'heure et la date à l'aide de JavaScript
Si vous souhaitez ajouter des zéros non significatifs au jour / mois, voici un exemple parfait: Javascript ajoute des zéros non significatifs à ce jour
et si vous voulez ajouter du temps avec des zéros non significatifs, essayez ceci: getMinutes () 0-9 - comment faire avec deux nombres?
la source
Date
objet. Que diriez-vous d'obtenir la date dans le même format mais 6 mois avant la date du fed ??Voici une fonction vraiment basique que je viens de créer qui ne nécessite aucun plug-in externe:
$.date = function(dateObject) { var d = new Date(dateObject); var day = d.getDate(); var month = d.getMonth() + 1; var year = d.getFullYear(); if (day < 10) { day = "0" + day; } if (month < 10) { month = "0" + month; } var date = day + "/" + month + "/" + year; return date; };
Utilisation:
Résultat:
la source
ThulasiRam, je préfère votre suggestion. Cela fonctionne bien pour moi dans une syntaxe / contexte légèrement différent:
var dt_to = $.datepicker.formatDate('yy-mm-dd', new Date());
Si vous décidez d'utiliser datepicker à partir de l' interface utilisateur JQuery , assurez-vous d'utiliser les références appropriées dans la section <head> de votre document:
<link rel="stylesheet" href="http://code.jquery.com/ui/1.9.2/themes/base/jquery-ui.css" /> <script src="http://code.jquery.com/jquery-1.8.3.js"></script> <script src="http://code.jquery.com/ui/1.9.2/jquery-ui.js"></script>
la source
J'utilise Moment JS . Est très utile et facile à utiliser.
var date = moment(); //Get the current date date.format("YYYY-MM-DD"); //2014-07-10
la source
J'espère que ce code résoudra votre problème.
var d = new Date(); var curr_day = d.getDate(); var curr_month = d.getMonth(); var curr_year = d.getFullYear(); var curr_hour = d.getHours(); var curr_min = d.getMinutes(); var curr_sec = d.getSeconds(); curr_month++ ; // In js, first month is 0, not 1 year_2d = curr_year.toString().substring(2, 4) $("#txtDate").val(curr_day + " " + curr_month + " " + year_2d)
la source
Si vous utilisez jquery ui, vous pouvez l'utiliser comme ci-dessous, vous pouvez spécifier votre propre format de date
$.datepicker.formatDate( "D dd-M-yy", new Date()) // Output "Fri 08-Sep-2017"
la source
Utilisez simplement ceci:
var date_str=('0'+date.getDate()).substr(-2,2)+' '+('0'+date.getMonth()).substr(-2,2)+' '+('0'+date.getFullYear()).substr(-2,2);
la source
Ajoutez cette fonction à votre
<script></script>
et appelez de l'endroit où vous voulez<script></script>
<script> function GetNow(){ var currentdate = new Date(); var datetime = currentdate.getDate() + "-" + (currentdate.getMonth()+1) + "-" + currentdate.getFullYear() + " " + currentdate.getHours() + ":" + currentdate.getMinutes() + ":" + currentdate.getSeconds(); return datetime; } window.alert(GetNow()); </script>
ou vous pouvez simplement utiliser le Jquery qui fournit également des fonctionnalités de formatage: -
window.alert(Date.parse(new Date()).toString('yyyy-MM-dd H:i:s'));
J'adore la deuxième option. Il résout tous les problèmes en une seule fois.
la source
Bien que cette question ait été posée il y a quelques années, un plugin jQuery n'est plus nécessaire à condition que la valeur de date en question soit une chaîne avec un format
mm/dd/yyyy
(comme lors de l'utilisation d'un sélecteur de date);var birthdateVal = $('#birthdate').val(); //birthdateVal: 11/8/2014 var birthdate = new Date(birthdateVal); //birthdate: Sat Nov 08 2014 00:00:00 GMT-0500 (Eastern Standard Time)
la source
Vous pouvez ajouter une nouvelle fonction jQuery utilisateur 'getDate'
JSFiddle: getDate jQuery
Ou vous pouvez exécuter un extrait de code. Appuyez simplement sur le bouton "Exécuter l'extrait de code" sous ce message.
// Create user jQuery function 'getDate' (function( $ ){ $.fn.getDate = function(format) { var gDate = new Date(); var mDate = { 'S': gDate.getSeconds(), 'M': gDate.getMinutes(), 'H': gDate.getHours(), 'd': gDate.getDate(), 'm': gDate.getMonth() + 1, 'y': gDate.getFullYear(), } // Apply format and add leading zeroes return format.replace(/([SMHdmy])/g, function(key){return (mDate[key] < 10 ? '0' : '') + mDate[key];}); return getDate(str); }; })( jQuery ); // Usage: example #1. Write to '#date' div $('#date').html($().getDate("y-m-d H:M:S")); // Usage: ex2. Simple clock. Write to '#clock' div function clock(){ $('#clock').html($().getDate("H:M:S, m/d/y")) } clock(); setInterval(clock, 1000); // One second // Usage: ex3. Simple clock 2. Write to '#clock2' div function clock2(){ var format = 'H:M:S'; // Date format var updateInterval = 1000; // 1 second var clock2Div = $('#clock2'); // Get div var currentTime = $().getDate(format); // Get time clock2Div.html(currentTime); // Write to div setTimeout(clock2, updateInterval); // Set timer 1 second } // Run clock2 clock2(); // Just for fun // Usage: ex4. Simple clock 3. Write to '#clock3' span function clock3(){ var formatHM = 'H:M:'; // Hours, minutes var formatS = 'S'; // Seconds var updateInterval = 1000; // 1 second var clock3SpanHM = $('#clock3HM'); // Get span HM var clock3SpanS = $('#clock3S'); // Get span S var currentHM = $().getDate(formatHM); // Get time H:M var currentS = $().getDate(formatS); // Get seconds clock3SpanHM.html(currentHM); // Write to div clock3SpanS.fadeOut(1000).html(currentS).fadeIn(1); // Write to span setTimeout(clock3, updateInterval); // Set timer 1 second } // Run clock2 clock3();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.2.3/jquery.min.js"></script> <div id="date"></div><br> <div id="clock"></div><br> <span id="clock3HM"></span><span id="clock3S"></span>
Prendre plaisir!
la source
Vous pouvez utiliser cet extrait
$('.datepicker').datepicker({ changeMonth: true, changeYear: true, yearRange: '1900:+0', defaultDate: '01 JAN 1900', buttonImage: "http://www.theplazaclub.com/club/images/calendar/outlook_calendar.gif", dateFormat: 'dd/mm/yy', onSelect: function() { $('#datepicker').val($(this).datepicker({ dateFormat: 'dd/mm/yy' }).val()); } });
<link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css"> <script src="//code.jquery.com/jquery-1.10.2.js"></script> <script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script> <p> selector: <input type="text" class="datepicker"> </p> <p> output: <input type="text" id="datepicker"> </p>
la source
Nous pouvons simplement formater la date comme,
var month = date.getMonth() + 1; var day = date.getDate(); var date1 = (('' + day).length < 2 ? '0' : '') + day + '/' + (('' + month).length < 2 ? '0' : '') + month + '/' + date.getFullYear(); $("#txtDate").val($.datepicker.formatDate('dd/mm/yy', new Date(date1)));
Où «date» est une date dans n'importe quel format.
la source
Jetez un œil ici:
https://github.com/mbitto/jquery.i18 Maintenant
Ce plugin jQuery vous aide à formater et à traduire la date et l'heure selon vos préférences.
la source
Utilisez l'option dateFormat lors de la création du sélecteur de date.
$("#startDate").datepicker({ changeMonth: true, changeYear: true, showButtonPanel: true, dateFormat: 'yy/mm/dd' });
la source
vous pouvez utiliser le code ci-dessous sans le plugin.
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script> <link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css"> <script> $( function() { //call the function on page load $( "#datepicker" ).datepicker(); //set the date format here $( "#datepicker" ).datepicker("option" , "dateFormat", "dd-mm-yy"); // you also can use // yy-mm-dd // d M, y // d MM, y // DD, d MM, yy // 'day' d 'of' MM 'in the year' yy (With text - 'day' d 'of' MM 'in the year' yy) } ); </script> Pick the Date: <input type="text" id="datepicker">
la source
Cela a fonctionné pour moi avec une légère modification et sans aucun plugin
Entrée: mercredi 11 avril 2018 00:00:00 GMT + 0000
$.date = function(orginaldate) { var date = new Date(orginaldate); var day = date.getDate(); var month = date.getMonth() + 1; var year = date.getFullYear(); if (day < 10) { day = "0" + day; } if (month < 10) { month = "0" + month; } var date = month + "/" + day + "/" + year; return date; }; $.date('Wed Apr 11 2018 00:00:00 GMT+0000')
Sortie: 04/11/2018
la source
Je ne sais pas si je suis autorisé à répondre à une question qui a été posée il y a 2 ans car c'est ma première réponse sur stackoverflow mais voici ma solution;
Si vous avez une fois récupéré la date de votre base de données MySQL, divisez-la puis utilisez les valeurs divisées.
$(document).ready(function () { var datefrommysql = $('.date-from-mysql').attr("date"); var arraydate = datefrommysql.split('.'); var yearfirstdigit = arraydate[2][2]; var yearlastdigit = arraydate[2][3]; var day = arraydate[0]; var month = arraydate[1]; $('.formatted-date').text(day + "/" + month + "/" + yearfirstdigit + yearlastdigit); });
Voici un violon .
la source
Voici l'exemple de code complet que j'ai montré sur le navigateur, j'espère que vous aussi, merci.
<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <title>jQuery UI Datepicker functionality</title> <link href="http://code.jquery.com/ui/1.11.3/themes/smoothness/jquery-ui.css" rel="stylesheet"> <script src="http://code.jquery.com/jquery-1.10.2.js"></script> <script src="http://code.jquery.com/ui/1.10.4/jquery-ui.js"></script> <!-- Javascript --> <script> $(function() { $( "#datepicker" ).datepicker({ minDate: -100, maxDate: "+0D", dateFormat: 'yy-dd-mm', onSelect: function(datetext){ $(this).val(datetext); }, }); }); </script> </head> <body> <!-- HTML --> <p>Enter Date: <input type="text" id="datepicker"></p> </body> </html>
la source
Vous pouvez essayer http://www.datejs.com/
$('#idInput').val( Date.parse("Jun 18, 2017 7:00:00 PM").toString('yyyy-MM-dd'));
BR
la source
vous pouvez utiliser ce codage
$('[name="tgllahir"]').val($.datepicker.formatDate('dd-mm-yy', new Date(data.tgllahir)));
la source