CALCULAR LA DIFERENCIA DE DÍAS ENTRE LA FECHA DE VENCIMIENTO Y LA ACTUAL DE LOS ARTÍCULOS
calcular diferencias de dias de fecha vencimiento de articulos cargado en una tabla mysql codigo php pdo fetch api json genenera otra tabla con dichos articulos a vencer a 10 dias
Para calcular la diferencia de días entre la fecha de vencimiento de los artículos y la fecha actual, se puede utilizar la función DATEDIFF en MySQL. Suponiendo que la fecha de vencimiento de cada artículo se almacena en la columna "fecha_vencimiento" de la tabla "articulos", se puede obtener la diferencia de días con la siguiente consulta:
vbnet
Copy code
SELECT id_articulo, DATEDIFF(fecha_vencimiento, CURDATE()) AS dias_vencer FROM articulos
Esto devuelve una tabla que contiene el ID de cada artículo y el número de días que faltan para que venza. Ahora, para generar una tabla con los artículos que vencen en 10 días o menos, se puede utilizar la consulta anterior como subconsulta y aplicar una condición adicional:
vbnet
Copy code
SELECT * FROM (
SELECT id_articulo, DATEDIFF(fecha_vencimiento, CURDATE()) AS dias_vencer FROM articulos
) AS subconsulta
WHERE dias_vencer <= 10
Esto devuelve una tabla que contiene el ID de cada artículo y el número de días que faltan para que venza, pero solo para los artículos que vencen en 10 días o menos. Puede modificar esta consulta según sus necesidades específicas y luego utilizar PDO y JSON para generar una respuesta en formato JSON.
jose fernandez
hacer un ejemplo con php mysql pdo api json fetch
Claro, aquí te dejo un ejemplo de cómo podrías implementar el código PHP para obtener los datos de MySQL utilizando PDO, y luego generar una respuesta JSON utilizando el método fetch:
php
Copy code
<?php
// Configuración de la base de datos
$host = 'localhost';
$dbname = 'mi_base_de_datos';
$username = 'mi_usuario';
$password = 'mi_contraseña';
// Conexión a la base de datos
$dsn = "mysql:host=$host;dbname=$dbname;charset=utf8mb4";
$options = [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_EMULATE_PREPARES => false,
];
try {
$pdo = new PDO($dsn, $username, $password, $options);
} catch (PDOException $e) {
die("Error al conectarse a la base de datos: " . $e->getMessage());
}
// Consulta para obtener los artículos que vencen en 10 días o menos
$sql = "SELECT * FROM (
SELECT id_articulo, DATEDIFF(fecha_vencimiento, CURDATE()) AS dias_vencer FROM articulos
) AS subconsulta
WHERE dias_vencer <= 10";
// Preparar la consulta y ejecutarla
$stmt = $pdo->prepare($sql);
$stmt->execute();
// Obtener los resultados como un array asociativo
$resultados = $stmt->fetchAll();
// Generar la respuesta en formato JSON
header('Content-Type: application/json');
echo json_encode($resultados);
?>
Este código realiza una consulta a la base de datos utilizando PDO y luego utiliza el método fetchAll para obtener los resultados como un array asociativo. Luego, se genera una respuesta en formato JSON utilizando el método json_encode, que se devuelve al cliente con la función echo.
Ten en cuenta que este código es solo un ejemplo y deberás adaptarlo a tus propias necesidades y estructura de base de datos. Además, es importante tomar medidas de seguridad para proteger contra inyecciones SQL y otros ataques, como validar y escapar los datos de entrada antes de utilizarlos en consultas SQL.
jose fernandez
hacer la consulta boton fetch php y mysql y mostrarlo table html
Claro, aquí te dejo un ejemplo de cómo podrías implementar el código PHP para hacer una consulta a la base de datos utilizando PDO y el botón Fetch, y luego mostrar los resultados en una tabla HTML:
php
Copy code
<?php
// Configuración de la base de datos
$host = 'localhost';
$dbname = 'mi_base_de_datos';
$username = 'mi_usuario';
$password = 'mi_contraseña';
// Conexión a la base de datos
$dsn = "mysql:host=$host;dbname=$dbname;charset=utf8mb4";
$options = [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_EMULATE_PREPARES => false,
];
try {
$pdo = new PDO($dsn, $username, $password, $options);
} catch (PDOException $e) {
die("Error al conectarse a la base de datos: " . $e->getMessage());
}
// Verificar si se ha hecho clic en el botón Fetch
if (isset($_POST['fetch'])) {
// Consulta para obtener los artículos que vencen en 10 días o menos
$sql = "SELECT * FROM (
SELECT id_articulo, nombre, fecha_vencimiento, DATEDIFF(fecha_vencimiento, CURDATE()) AS dias_vencer FROM articulos
) AS subconsulta
WHERE dias_vencer <= 10";
// Preparar la consulta y ejecutarla
$stmt = $pdo->prepare($sql);
$stmt->execute();
// Obtener los resultados como un array asociativo
$resultados = $stmt->fetchAll();
}
?>
<!DOCTYPE html>
<html>
<head>
<title>Consulta con Fetch</title>
</head>
<body>
<form method="POST">
<input type="submit" name="fetch" value="Fetch">
</form>
<?php if (isset($resultados)): ?>
<table>
<thead>
<tr>
<th>ID</th>
<th>Nombre</th>
<th>Fecha de Vencimiento</th>
<th>Días para Vencer</th>
</tr>
</thead>
<tbody>
<?php foreach ($resultados as $resultado): ?>
<tr>
<td><?php echo $resultado['id_articulo'] ?></td>
<td><?php echo $resultado['nombre'] ?></td>
<td><?php echo $resultado['fecha_vencimiento'] ?></td>
<td><?php echo $resultado['dias_vencer'] ?></td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
<?php endif; ?>
</body>
</html>
En este código, se crea un formulario con un botón Fetch que permite al usuario hacer clic para obtener los resultados de la consulta. Cuando se hace clic en el botón Fetch, se verifica que haya sido presionado y se realiza la consulta utilizando PDO, y los resultados se almacenan en un array asociativo. Luego, se muestra una tabla HTML con los resultados utilizando un foreach loop.
Ten en cuenta que este código es solo un ejemplo y deberás adaptarlo a tus propias necesidades y estructura de base de datos. Además, es importante tomar medidas de seguridad para proteger contra inyecciones SQL y otros ataques, como validar y escapar los datos de entrada antes de utilizarlos en consultas SQL.
jose fernandez
haz el .sql de base datos
Aquí te dejo un ejemplo de archivo SQL que puedes utilizar para crear la base de datos y la tabla necesarias para el ejemplo anterior:
sql
Copy code
CREATE DATABASE `mi_base_de_datos`;
USE `mi_base_de_datos`;
CREATE TABLE `articulos` (
`id_articulo` int(11) NOT NULL AUTO_INCREMENT,
`nombre` varchar(255) NOT NULL,
`fecha_vencimiento` date NOT NULL,
PRIMARY KEY (`id_articulo`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
INSERT INTO `articulos` (`nombre`, `fecha_vencimiento`)
VALUES
('Artículo 1', '2023-04-15'),
('Artículo 2', '2023-04-25'),
('Artículo 3', '2023-04-30'),
('Artículo 4', '2023-05-05'),
('Artículo 5', '2023-05-10'),
('Artículo 6', '2023-05-15'),
('Artículo 7', '2023-05-20'),
('Artículo 8', '2023-05-25'),
('Artículo 9', '2023-05-30'),
('Artículo 10', '2023-06-05');
Este archivo SQL creará una base de datos llamada mi_base_de_datos con una tabla llamada articulos, que tiene tres columnas: id_articulo, nombre y fecha_vencimiento. Además, se insertan 10 filas de datos de ejemplo para que puedas probar la consulta que mostré anteriormente.
Ten en cuenta que este archivo SQL es solo un ejemplo y deberás adaptarlo a tus propias necesidades y nombres de tablas y columnas.
jose fernandez
calcular los dias del vencimiento con la fecha actual de la pc como es la consulta
Para calcular los días de vencimiento a partir de la fecha actual de la PC, puedes utilizar la función DATEDIFF() de MySQL, que devuelve la diferencia entre dos fechas en días. En este caso, la primera fecha será la fecha de vencimiento del artículo y la segunda fecha será la fecha actual.
La consulta para obtener los artículos que vencen en los próximos 10 días y la cantidad de días restantes para su vencimiento quedaría así:
sql
Copy code
SELECT nombre, fecha_vencimiento, DATEDIFF(fecha_vencimiento, CURDATE()) AS dias_restantes
FROM articulos
WHERE fecha_vencimiento BETWEEN CURDATE() AND DATE_ADD(CURDATE(), INTERVAL 10 DAY);
Esta consulta utilizará la función CURDATE() para obtener la fecha actual de la PC y la función DATE_ADD() para agregarle 10 días, creando un rango de fechas que va desde la fecha actual hasta 10 días en el futuro. Luego, la consulta utiliza la función DATEDIFF() para calcular los días de vencimiento y los muestra junto con el nombre y la fecha de vencimiento del artículo.
jose fernandez
hacer los dias restantes del vencimiento con fecha actual de la pc sin INTERVAL 10 DAY
Para calcular los días restantes del vencimiento de los artículos a partir de la fecha actual de la PC sin utilizar INTERVAL 10 DAY, puedes hacer lo siguiente:
sql
Copy code
SELECT nombre, fecha_vencimiento, DATEDIFF(fecha_vencimiento, CURDATE()) AS dias_restantes
FROM articulos
WHERE fecha_vencimiento > CURDATE()
Esta consulta utilizará la función CURDATE() para obtener la fecha actual de la PC y la función DATEDIFF() para calcular los días de vencimiento y los muestra junto con el nombre y la fecha de vencimiento del artículo. Luego, la consulta utiliza la cláusula WHERE para filtrar los artículos que tienen una fecha de vencimiento posterior a la fecha actual.
De esta manera, se obtendrán los artículos que aún no han vencido y se calcularán los días que quedan para su vencimiento a partir de la fecha actual.
jose fernandez
haz un ejemplo de mostrar una table html con boton con la consulta SELECT nombre, fecha_vencimiento, DATEDIFF(fecha_vencimiento, CURDATE()) AS dias_restantes
FROM articulos
WHERE fecha_vencimiento > CURDATE() hacer con php pdo mysql
Claro, aquí te muestro un ejemplo de cómo mostrar los resultados de la consulta SELECT nombre, fecha_vencimiento, DATEDIFF(fecha_vencimiento, CURDATE()) AS dias_restantes FROM articulos WHERE fecha_vencimiento > CURDATE() en una tabla HTML usando PHP PDO y MySQL:
php
Copy code
<?php
// Conexión a la base de datos
$host = 'localhost';
$dbname = 'mi_base_de_datos';
$username = 'mi_usuario';
$password = 'mi_contraseña';
$dsn = "mysql:host=$host;dbname=$dbname;charset=utf8mb4";
$options = [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_EMULATE_PREPARES => false,
];
try {
$pdo = new PDO($dsn, $username, $password, $options);
} catch (PDOException $e) {
echo 'Error de conexión: ' . $e->getMessage();
exit;
}
// Consulta a la base de datos
$stmt = $pdo->query('SELECT nombre, fecha_vencimiento, DATEDIFF(fecha_vencimiento, CURDATE()) AS dias_restantes FROM articulos WHERE fecha_vencimiento > CURDATE()');
// Crear la tabla HTML
echo '<table>';
echo '<tr><th>Nombre</th><th>Fecha de vencimiento</th><th>Días restantes</th><th></th></tr>';
while ($row = $stmt->fetch()) {
echo '<tr>';
echo '<td>' . htmlspecialchars($row['nombre']) . '</td>';
echo '<td>' . htmlspecialchars($row['fecha_vencimiento']) . '</td>';
echo '<td>' . htmlspecialchars($row['dias_restantes']) . '</td>';
echo '<td><button>Comprar</button></td>';
echo '</tr>';
}
echo '</table>';
?>
Este código primero establece la conexión a la base de datos usando PDO y luego ejecuta la consulta SQL. Luego, utiliza un bucle while para recorrer cada fila de resultados y generar una fila de la tabla HTML para cada una de ellas.
En cada fila, se muestran el nombre, la fecha de vencimiento y los días restantes, y se agrega un botón para comprar el artículo (que no hace nada en este ejemplo). Por último, se cierra la tabla HTML.
Ten en cuenta que este ejemplo es solo una guía y deberás adaptarlo a tus propias necesidades y nombres de tablas y columnas. Además, te recomiendo que implementes medidas de seguridad adecuadas para evitar posibles ataques a tu aplicación, como la validación de entradas del usuario y la prevención de inyección de SQL.
jose fernandez
agregar un input para hacer cosulta par que se ingrese cantidad de dias de diferencia y calcule la diferncia con el ejemplo anterior
Para agregar un input que permita al usuario ingresar la cantidad de días de diferencia en la consulta y calcular la diferencia con la consulta anterior, puedes hacer lo siguiente:
Agrega un formulario HTML con un campo de entrada para la cantidad de días y un botón de envío:
html
Copy code
<form method="get">
<label for="dias">Días de diferencia:</label>
<input type="number" name="dias" id="dias">
<button type="submit">Buscar</button>
</form>
Agrega el siguiente código PHP al principio de tu archivo para obtener la cantidad de días ingresada por el usuario (si existe) y asignarla a una variable $diferencia_dias:
php
Copy code
if (isset($_GET['dias'])) {
$diferencia_dias = (int)$_GET['dias'];
} else {
$diferencia_dias = 10; // valor por defecto si no se ha ingresado nada
}
Actualiza la consulta SQL para utilizar la variable $diferencia_dias en lugar del valor fijo "10":
php
Copy code
$stmt = $pdo->prepare('SELECT nombre, fecha_vencimiento, DATEDIFF(fecha_vencimiento, CURDATE()) AS dias_restantes FROM articulos WHERE fecha_vencimiento > CURDATE() AND DATEDIFF(fecha_vencimiento, CURDATE()) <= :diferencia_dias');
$stmt->execute(['diferencia_dias' => $diferencia_dias]);
En este código, la consulta utiliza la cláusula AND para agregar una condición adicional que limita los resultados a los artículos cuyo vencimiento está dentro de la cantidad de días especificada por el usuario. Además, se utiliza una consulta preparada con prepare() y execute() para evitar la inyección de SQL.
Agrega la variable $diferencia_dias al formulario como un valor predeterminado para el campo de entrada:
html
Copy code
<form method="get">
<label for="dias">Días de diferencia:</label>
<input type="number" name="dias" id="dias" value="<?php echo htmlspecialchars($diferencia_dias); ?>">
<button type="submit">Buscar</button>
</form>
Con estos cambios, el usuario podrá ingresar la cantidad de días de diferencia que desea y la tabla se actualizará automáticamente para mostrar los artículos cuyo vencimiento está dentro de ese período de tiempo. Si no se ha ingresado ningún valor, se utilizará el valor predeterminado de 10 días.
jose fernandez
haz el ejemplo completo en un solo archivo del ejemplo anterior
Aquí te dejo un ejemplo completo en un solo archivo que utiliza PHP, PDO y MySQL para mostrar una tabla HTML con los artículos cuyo vencimiento está dentro de un número específico de días, ingresado por el usuario a través de un formulario:
php
Copy code
<?php
// Conexión a la base de datos
$host = 'localhost';
$dbname = 'test';
$username = 'root';
$password = '';
$dsn = "mysql:host=$host;dbname=$dbname;charset=utf8mb4";
$options = [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_EMULATE_PREPARES => false,
PDO::ATTR_PERSISTENT => true
];
try {
$pdo = new PDO($dsn, $username, $password, $options);
} catch (\PDOException $e) {
throw new \PDOException($e->getMessage(), (int)$e->getCode());
}
// Obtener la cantidad de días ingresada por el usuario
if (isset($_GET['dias'])) {
$diferencia_dias = (int)$_GET['dias'];
} else {
$diferencia_dias = 10; // valor por defecto si no se ha ingresado nada
}
// Consulta SQL para obtener los artículos que vencen en un número específico de días
$stmt = $pdo->prepare('SELECT nombre, fecha_vencimiento, DATEDIFF(fecha_vencimiento, CURDATE()) AS dias_restantes FROM articulos WHERE fecha_vencimiento > CURDATE() AND DATEDIFF(fecha_vencimiento, CURDATE()) <= :diferencia_dias');
$stmt->execute(['diferencia_dias' => $diferencia_dias]);
// Mostrar los resultados en una tabla HTML
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Artículos que vencen próximamente</title>
</head>
<body>
<h1>Artículos que vencen en los próximos <?php echo htmlspecialchars($diferencia_dias); ?> días</h1>
<form method="get">
<label for="dias">Días de diferencia:</label>
<input type="number" name="dias" id="dias" value="<?php echo htmlspecialchars($diferencia_dias); ?>">
<button type="submit">Buscar</button>
</form>
<table>
<thead>
<tr>
<th>Nombre</th>
<th>Fecha de vencimiento</th>
<th>Días restantes</th>
</tr>
</thead>
<tbody>
<?php while ($row = $stmt->fetch()): ?>
<tr>
<td><?php echo htmlspecialchars($row['nombre']); ?></td>
<td><?php echo htmlspecialchars($row['fecha_vencimiento']); ?></td>
<td><?php echo htmlspecialchars($row['dias_restantes']); ?></td>
</tr>
<?php endwhile; ?>
</tbody>
</table>
</body>
</html>
Este archivo muestra una tabla HTML con los artículos que vencen en los próximos días, donde el número de días se puede especificar a través de un campo de entrada en un formulario. La consulta SQL utiliza una consulta preparada con prepare() y execute() para evitar la inyección de SQL.
jose fernandez
hacer mismo ejemplo con consulta aplicando fetch javascript metodo post php pdo mysql
Aquí te dejo un ejemplo que utiliza JavaScript para realizar una solicitud POST a un archivo PHP que realiza la consulta utilizando PDO y MySQL. El archivo PHP devuelve los resultados en formato JSON, que luego son procesados por JavaScript y mostrados en una tabla HTML.
HTML:
html
Copy code
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Artículos que vencen próximamente</title>
</head>
<body>
<h1>Artículos que vencen en los próximos días</h1>
<form>
<label for="dias">Días de diferencia:</label>
<input type="number" name="dias" id="dias" value="10">
<button type="submit">Buscar</button>
</form>
<table id="articulos">
<thead>
<tr>
<th>Nombre</th>
<th>Fecha de vencimiento</th>
<th>Días restantes</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
<script src="script.js"></script>
</body>
</html>
JavaScript (script.js):
javascript
Copy code
const form = document.querySelector('form');
form.addEventListener('submit', (e) => {
e.preventDefault();
const dias = form.dias.value;
fetch('buscar.php', {
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
},
body: `dias=${dias}`
})
.then(response => response.json())
.then(data => {
const tbody = document.querySelector('table#articulos tbody');
tbody.innerHTML = '';
data.forEach(row => {
const tr = document.createElement('tr');
tr.innerHTML = `
<td>${row.nombre}</td>
<td>${row.fecha_vencimiento}</td>
<td>${row.dias_restantes}</td>
`;
tbody.appendChild(tr);
});
});
});
PHP (buscar.php):
php
Copy code
<?php
// Conexión a la base de datos
$host = 'localhost';
$dbname = 'test';
$username = 'root';
$password = '';
$dsn = "mysql:host=$host;dbname=$dbname;charset=utf8mb4";
$options = [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_EMULATE_PREPARES => false,
PDO::ATTR_PERSISTENT => true
];
try {
$pdo = new PDO($dsn, $username, $password, $options);
} catch (\PDOException $e) {
throw new \PDOException($e->getMessage(), (int)$e->getCode());
}
// Obtener la cantidad de días ingresada por el usuario
if (isset($_POST['dias'])) {
$diferencia_dias = (int)$_POST['dias'];
} else {
$diferencia_dias = 10; // valor por defecto si no se ha ingresado nada
}
// Consulta SQL para obtener los artículos que vencen en un número específico de días
$stmt = $pdo->prepare('SELECT nombre, fecha_vencimiento, DATEDIFF(fecha_vencimiento, CURDATE()) AS dias_restantes FROM articulos WHERE fecha_vencimiento > CURDATE() AND DATEDIFF(fecha_vencimiento, CURDATE()) <= :diferencia_dias');
$stmt->execute(['diferencia_dias' => $diferencia_dias
jose fernandez
haz buscar.php
Aquí te dejo el archivo buscar.php que se utiliza en el ejemplo que te proporcioné en la respuesta anterior:
php
Copy code
<?php
// Conexión a la base de datos
$host = 'localhost';
$dbname = 'test';
$username = 'root';
$password = '';
$dsn = "mysql:host=$host;dbname=$dbname;charset=utf8mb4";
$options = [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_EMULATE_PREPARES => false,
PDO::ATTR_PERSISTENT => true
];
try {
$pdo = new PDO($dsn, $username, $password, $options);
} catch (\PDOException $e) {
throw new \PDOException($e->getMessage(), (int)$e->getCode());
}
// Obtener la cantidad de días ingresada por el usuario
if (isset($_POST['dias'])) {
$diferencia_dias = (int)$_POST['dias'];
} else {
$diferencia_dias = 10; // valor por defecto si no se ha ingresado nada
}
// Consulta SQL para obtener los artículos que vencen en un número específico de días
$stmt = $pdo->prepare('SELECT nombre, fecha_vencimiento, DATEDIFF(fecha_vencimiento, CURDATE()) AS dias_restantes FROM articulos WHERE fecha_vencimiento > CURDATE() AND DATEDIFF(fecha_vencimiento, CURDATE()) <= :diferencia_dias');
$stmt->execute(['diferencia_dias' => $diferencia_dias]);
// Devolver los resultados en formato JSON
header('Content-Type: application/json');
echo json_encode($stmt->fetchAll());
Este archivo establece una conexión con la base de datos, obtiene la cantidad de días ingresada por el usuario a través de la solicitud POST y realiza la consulta SQL para obtener los artículos que vencen en un número específico de días. Luego, devuelve los resultados en formato JSON para que puedan ser procesados por JavaScript.
jose fernandez
como muestro la fecha formato dia/mes/año
Para mostrar la fecha en el formato "día/mes/año" puedes utilizar la función date de PHP.
En el ejemplo que te proporcioné anteriormente, la fecha de vencimiento se devuelve en el formato ISO-8601, es decir, "YYYY-MM-DD". Para mostrarla en el formato que deseas, puedes utilizar la función date de PHP para convertirla a una cadena de caracteres con el formato deseado. A continuación te muestro cómo podrías hacerlo:
php
Copy code
// Obtener los resultados de la consulta
$resultados = $stmt->fetchAll();
// Mostrar los resultados en una tabla HTML
echo '<table>';
echo '<tr><th>Nombre</th><th>Fecha de vencimiento</th><th>Días restantes</th></tr>';
foreach ($resultados as $resultado) {
echo '<tr>';
echo '<td>' . htmlspecialchars($resultado['nombre']) . '</td>';
echo '<td>' . date('d/m/Y', strtotime($resultado['fecha_vencimiento'])) . '</td>';
echo '<td>' . htmlspecialchars($resultado['dias_restantes']) . '</td>';
echo '</tr>';
}
echo '</table>';
En este ejemplo, la función date recibe dos parámetros: el primero indica el formato en el que se desea mostrar la fecha y el segundo es un valor de tipo timestamp que se obtiene a partir de la cadena de caracteres de la fecha de vencimiento utilizando la función strtotime.
Espero que esto te ayude a mostrar la fecha en el formato que deseas.
jose fernandez
pero con javascript hacer conversion dia-mes-año
Para mostrar la fecha en el formato "día/mes/año" en JavaScript, puedes utilizar la clase Date y los métodos getDate(), getMonth() y getFullYear() para obtener el día, mes y año de la fecha respectivamente.
En el ejemplo que te proporcioné anteriormente, los datos se devuelven en formato JSON, por lo que deberás procesarlos en JavaScript y luego mostrarlos en una tabla HTML. A continuación te muestro cómo podrías hacerlo:
javascript
Copy code
// Obtener la referencia al botón
const btnBuscar = document.getElementById('btnBuscar');
// Agregar un evento 'click' al botón
btnBuscar.addEventListener('click', () => {
// Obtener la cantidad de días ingresada por el usuario
const inputDias = document.getElementById('inputDias');
const diferenciaDias = inputDias.value;
// Realizar la solicitud AJAX utilizando fetch
fetch('buscar.php', {
method: 'POST',
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
body: `dias=${diferenciaDias}`
})
.then(response => response.json())
.then(data => {
// Obtener la referencia a la tabla
const tabla = document.getElementById('tablaArticulos');
// Limpiar la tabla
tabla.innerHTML = '';
// Agregar las filas de la tabla con los resultados de la búsqueda
data.forEach(articulo => {
const nombre = articulo.nombre;
const fechaVencimiento = new Date(articulo.fecha_vencimiento);
const diasRestantes = articulo.dias_restantes;
const fila = tabla.insertRow();
fila.insertCell().textContent = nombre;
fila.insertCell().textContent = `${fechaVencimiento.getDate()}/${fechaVencimiento.getMonth() + 1}/${fechaVencimiento.getFullYear()}`;
fila.insertCell().textContent = diasRestantes;
});
});
});
En este ejemplo, se utiliza el método fetch para realizar la solicitud AJAX y procesar los datos devueltos en formato JSON. Luego, se obtiene la referencia a la tabla HTML y se agregan las filas correspondientes utilizando los valores obtenidos de los objetos en el array data.
Para mostrar la fecha en el formato "día/mes/año", se crea un nuevo objeto Date a partir de la cadena de caracteres de la fecha de vencimiento y se utilizan los métodos getDate(), getMonth() y getFullYear() para obtener el día, mes y año respectivamente.
jose fernandez
otra forma en javascript
Sí, otra forma de formatear la fecha en el formato "día/mes/año" en JavaScript es utilizando el método toLocaleDateString().
Este método devuelve una cadena de caracteres que representa la fecha en formato localizado. Puedes utilizarlo de la siguiente manera:
javascript
Copy code
// Crear un objeto Date a partir de una cadena de caracteres
const fecha = new Date('2023-05-01');
// Formatear la fecha en formato "día/mes/año"
const fechaFormateada = fecha.toLocaleDateString('es-ES');
console.log(fechaFormateada); // Output: "01/05/2023"
En este ejemplo, se crea un objeto Date a partir de una cadena de caracteres que representa una fecha. Luego, se utiliza el método toLocaleDateString() para formatear la fecha en el formato "día/mes/año".
El primer argumento que se pasa al método toLocaleDateString() es una cadena de caracteres que representa el código de idioma y el país. En este caso, se utiliza 'es-ES' para indicar que se desea utilizar el español de España como idioma y formato localizado.
Ten en cuenta que el método toLocaleDateString() utiliza el formato de fecha localizado del sistema operativo en el que se ejecuta el script, por lo que el resultado puede variar dependiendo del entorno en el que se ejecute el código.
Comentarios
Publicar un comentario